From ae9ade57549a4360807f89f543ddc66ac3a73b64 Mon Sep 17 00:00:00 2001 From: ioito Date: Tue, 24 May 2022 11:37:55 +0800 Subject: [PATCH] fix(region): avoid panic with qcloud sync --- pkg/multicloud/qcloud/certificate.go | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/pkg/multicloud/qcloud/certificate.go b/pkg/multicloud/qcloud/certificate.go index c71c79023f..fe2d4898ba 100644 --- a/pkg/multicloud/qcloud/certificate.go +++ b/pkg/multicloud/qcloud/certificate.go @@ -22,7 +22,6 @@ import ( "time" "yunion.io/x/jsonutils" - "yunion.io/x/log" "yunion.io/x/pkg/errors" "yunion.io/x/onecloud/pkg/cloudprovider" @@ -74,28 +73,28 @@ type SCertificate struct { CertificatePublicKey string `json:"CertificatePublicKey"` } -func (self *SCertificate) GetDetails() *SCertificate { +func (self *SCertificate) GetDetails() (*SCertificate, error) { if !self.detailsInitd { cert, err := self.region.GetCertificate(self.GetId()) if err != nil { - log.Debugf("GetCertificate %s", err) + return nil, err } - self.detailsInitd = true self.SubjectAltName = cert.SubjectAltName self.CertificatePrivateKey = cert.CertificatePrivateKey self.CertificatePublicKey = cert.CertificatePublicKey } - - return self + return self, nil } func (self *SCertificate) GetPublickKey() string { - return self.GetDetails().CertificatePublicKey + self.GetDetails() + return self.CertificatePublicKey } func (self *SCertificate) GetPrivateKey() string { - return self.GetDetails().CertificatePrivateKey + self.GetDetails() + return self.CertificatePrivateKey } // 证书不能修改 @@ -142,11 +141,13 @@ func (self *SCertificate) GetCommonName() string { } func (self *SCertificate) GetSubjectAlternativeNames() string { - return strings.Join(self.GetDetails().SubjectAltName, ",") + self.GetDetails() + return strings.Join(self.SubjectAltName, ",") } func (self *SCertificate) GetFingerprint() string { - _fp := sha1.Sum([]byte(self.GetDetails().CertificatePublicKey)) + self.GetDetails() + _fp := sha1.Sum([]byte(self.CertificatePublicKey)) fp := fmt.Sprintf("sha1:% x", _fp) return strings.Replace(fp, " ", ":", -1) }