diff --git a/pkg/util/huawei/huawei.go b/pkg/util/huawei/huawei.go index 50d1f3b710..6c6fb9b4d4 100644 --- a/pkg/util/huawei/huawei.go +++ b/pkg/util/huawei/huawei.go @@ -67,19 +67,35 @@ func NewHuaweiClient(providerId, providerName, accessurl, account, secret string secret: secret, debug: debug, } - err := client.fetchRegions() - if err != nil { - return nil, err - } - - cred := credentials.NewAccessKeyCredential(client.accessKey, client.accessKey) - client.signer, err = auth.NewSignerWithCredential(cred) + err := client.init() if err != nil { return nil, err } return &client, nil } +func (self *SHuaweiClient) init() error { + err := self.fetchRegions() + if err != nil { + return err + } + err = self.initSigner() + if err != nil { + return err + } + return nil +} + +func (self *SHuaweiClient) initSigner() error { + var err error + cred := credentials.NewAccessKeyCredential(self.accessKey, self.accessKey) + self.signer, err = auth.NewSignerWithCredential(cred) + if err != nil { + return err + } + return nil +} + func (self *SHuaweiClient) fetchRegions() error { huawei, _ := client.NewClientWithAccessKey("", "", self.accessKey, self.secret, self.debug) regions := make([]SRegion, 0)