Merge pull request #1987 from allencloud/log-error-when-getting-swarm-kernel-and-os-info

handle error when getting kernel and os info error
This commit is contained in:
Dongluo Chen 2016-03-28 15:44:43 -07:00
commit c567e4e675
1 changed files with 19 additions and 6 deletions

View File

@ -14,6 +14,7 @@ import (
"strings" "strings"
"time" "time"
log "github.com/Sirupsen/logrus"
"github.com/docker/docker/pkg/parsers/kernel" "github.com/docker/docker/pkg/parsers/kernel"
versionpkg "github.com/docker/docker/pkg/version" versionpkg "github.com/docker/docker/pkg/version"
apitypes "github.com/docker/engine-api/types" apitypes "github.com/docker/engine-api/types"
@ -71,9 +72,13 @@ func getInfo(c *context, w http.ResponseWriter, r *http.Request) {
info.SystemStatus = status info.SystemStatus = status
} }
if kernelVersion, err := kernel.GetKernelVersion(); err == nil { kernelVersion := "<unknown>"
info.KernelVersion = kernelVersion.String() if kv, err := kernel.GetKernelVersion(); err != nil {
log.Warnf("Could not get kernel version: %v", err)
} else {
kernelVersion = kv.String()
} }
info.KernelVersion = kernelVersion
for _, c := range c.cluster.Containers() { for _, c := range c.cluster.Containers() {
info.Containers++ info.Containers++
@ -86,9 +91,13 @@ func getInfo(c *context, w http.ResponseWriter, r *http.Request) {
} }
} }
if hostname, err := os.Hostname(); err == nil { hostname := "<unknown>"
info.Name = hostname if hn, err := os.Hostname(); err != nil {
log.Warnf("Could not get hostname: %v", err)
} else {
hostname = hn
} }
info.Name = hostname
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(info) json.NewEncoder(w).Encode(info)
@ -107,9 +116,13 @@ func getVersion(c *context, w http.ResponseWriter, r *http.Request) {
BuildTime: version.BUILDTIME, BuildTime: version.BUILDTIME,
} }
if kernelVersion, err := kernel.GetKernelVersion(); err == nil { kernelVersion := "<unknown>"
version.KernelVersion = kernelVersion.String() if kv, err := kernel.GetKernelVersion(); err != nil {
log.Warnf("Could not get kernel version: %v", err)
} else {
kernelVersion = kv.String()
} }
version.KernelVersion = kernelVersion
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(version) json.NewEncoder(w).Encode(version)