From 008e881dc59525ae1434dea2828700ff98999a32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Thu, 27 Dec 2018 18:56:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8D=E8=8E=B7=E5=8F=96ipmi?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E4=BF=A1=E6=81=AF=E5=A4=B1=E8=B4=A5=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=E4=B8=8D=E6=98=8E?= =?UTF-8?q?=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/hosts.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/pkg/compute/models/hosts.go b/pkg/compute/models/hosts.go index 620331dbb9..f7da3f5e9a 100644 --- a/pkg/compute/models/hosts.go +++ b/pkg/compute/models/hosts.go @@ -2150,18 +2150,19 @@ func (self *SHost) AllowGetDetailsIpmi(ctx context.Context, userCred mcclient.To } func (self *SHost) GetDetailsIpmi(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) (jsonutils.JSONObject, error) { - ret := self.IpmiInfo.(*jsonutils.JSONDict) - if ret != nil { - password, err := ret.GetString("password") - if err == nil { - descryptedPassword, err := utils.DescryptAESBase64(self.Id, password) - if err != nil { - return nil, err - } - ret.Set("password", jsonutils.NewString(descryptedPassword)) - } + ret, ok := self.IpmiInfo.(*jsonutils.JSONDict) + if !ok { + return nil, httperrors.NewNotFoundError("No ipmi information was found for host %s", self.Name) } - + password, err := ret.GetString("password") + if err != nil { + return nil, httperrors.NewNotFoundError("IPMI has no password information") + } + descryptedPassword, err := utils.DescryptAESBase64(self.Id, password) + if err != nil { + return nil, err + } + ret.Set("password", jsonutils.NewString(descryptedPassword)) return ret, nil }