From b64c3b333371987aea51e25d6bc0104194e10ccb Mon Sep 17 00:00:00 2001 From: Zexi Li Date: Wed, 12 Dec 2018 17:46:56 +0800 Subject: [PATCH] region: specs panic when host sysinfo is nil --- pkg/compute/models/hosts.go | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/pkg/compute/models/hosts.go b/pkg/compute/models/hosts.go index a1df23d231..4813953757 100644 --- a/pkg/compute/models/hosts.go +++ b/pkg/compute/models/hosts.go @@ -733,16 +733,21 @@ func (self *SHost) GetSpec(statusCheck bool) *jsonutils.JSONDict { } } spec.Set("nic_count", jsonutils.NewInt(nicCount)) - manufacture, err := self.SysInfo.Get("manufacture") - if err != nil { - manufacture = jsonutils.NewString("Unknown") + + var manufacture string + var model string + if self.SysInfo != nil { + manufacture, _ = self.SysInfo.GetString("manufacture") + model, _ = self.SysInfo.GetString("model") } - spec.Set("manufacture", manufacture) - model, err := self.SysInfo.Get("model") - if err != nil { - model = jsonutils.NewString("Unknown") + if manufacture == "" { + manufacture = "Unknown" } - spec.Set("model", model) + if model == "" { + model = "Unknown" + } + spec.Set("manufacture", jsonutils.NewString(manufacture)) + spec.Set("model", jsonutils.NewString(model)) return spec }