mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #8817 from ioito/hotfix/qx-error-cause
fix: add error cause
This commit is contained in:
@@ -429,7 +429,7 @@ func (self *SAliyunClient) GetIHostById(id string) (cloudprovider.ICloudHost, er
|
||||
ihost, err := self.iregions[i].GetIHostById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -441,7 +441,7 @@ func (self *SAliyunClient) GetIVpcById(id string) (cloudprovider.ICloudVpc, erro
|
||||
ihost, err := self.iregions[i].GetIVpcById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -453,7 +453,7 @@ func (self *SAliyunClient) GetIStorageById(id string) (cloudprovider.ICloudStora
|
||||
ihost, err := self.iregions[i].GetIStorageById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -352,7 +352,7 @@ func (self *SAliyunProvider) GetICloudDnsZoneById(id string) (cloudprovider.IClo
|
||||
if err == nil {
|
||||
return privateIzone, nil
|
||||
} else {
|
||||
if err != cloudprovider.ErrNotFound {
|
||||
if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -361,7 +361,7 @@ func (self *SAliyunProvider) GetICloudDnsZoneById(id string) (cloudprovider.IClo
|
||||
if err == nil {
|
||||
return publicIzone, nil
|
||||
} else {
|
||||
if err != cloudprovider.ErrNotFound {
|
||||
if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"yunion.io/x/pkg/errors"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
)
|
||||
|
||||
@@ -55,7 +57,7 @@ const (
|
||||
func (self *SAliyunClient) EnableImageImport() error {
|
||||
_, err := self.GetRole(AliyunECSImageImportRole)
|
||||
if err != nil {
|
||||
if err != cloudprovider.ErrNotFound {
|
||||
if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return err
|
||||
}
|
||||
_, err = self.CreateRole(AliyunECSImageImportRole,
|
||||
|
||||
@@ -638,7 +638,7 @@ func (self *SRegion) GetIHostById(id string) (cloudprovider.ICloudHost, error) {
|
||||
ihost, err := izones[i].GetIHostById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -654,7 +654,7 @@ func (self *SRegion) GetIStorageById(id string) (cloudprovider.ICloudStorage, er
|
||||
istore, err := izones[i].GetIStorageById(id)
|
||||
if err == nil {
|
||||
return istore, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,15 +157,13 @@ func (self *SStoragecache) uploadImage(ctx context.Context, userCred mcclient.To
|
||||
bucketName := strings.ToLower(fmt.Sprintf("imgcache-%s-%s", self.region.GetId(), image.ImageId))
|
||||
exist, err := self.region.IBucketExist(bucketName)
|
||||
if err != nil {
|
||||
log.Errorf("IsBucketExist err %s", err)
|
||||
return "", err
|
||||
return "", errors.Wrapf(err, "IBucketExist(%s)", bucketName)
|
||||
}
|
||||
if !exist {
|
||||
log.Debugf("Bucket %s not exists, to create ...", bucketName)
|
||||
err = self.region.CreateIBucket(bucketName, "", "")
|
||||
if err != nil {
|
||||
log.Errorf("Create bucket error %s", err)
|
||||
return "", err
|
||||
return "", errors.Wrapf(err, "CreateIBucket %s", bucketName)
|
||||
}
|
||||
} else {
|
||||
log.Debugf("Bucket %s exists", bucketName)
|
||||
@@ -175,15 +173,13 @@ func (self *SStoragecache) uploadImage(ctx context.Context, userCred mcclient.To
|
||||
|
||||
bucket, err := self.region.GetIBucketByName(bucketName)
|
||||
if err != nil {
|
||||
log.Errorf("Bucket error %s %s", bucketName, err)
|
||||
return "", err
|
||||
return "", errors.Wrapf(err, "GetIBucketByName %s", bucketName)
|
||||
}
|
||||
log.Debugf("To upload image to bucket %s ...", bucketName)
|
||||
err = cloudprovider.UploadObject(context.Background(), bucket, image.ImageId, 0, reader, sizeByte, "", "", nil, false)
|
||||
// err = bucket.PutObject(image.ImageId, reader)
|
||||
if err != nil {
|
||||
log.Errorf("PutObject error %s %s", image.ImageId, err)
|
||||
return "", err
|
||||
return "", errors.Wrapf(err, "UploadObject %s", image.ImageId)
|
||||
}
|
||||
|
||||
defer bucket.DeleteObject(context.Background(), image.ImageId) // remove object
|
||||
@@ -214,22 +210,19 @@ func (self *SStoragecache) uploadImage(ctx context.Context, userCred mcclient.To
|
||||
// ensure privileges
|
||||
err = self.region.GetClient().EnableImageImport()
|
||||
if err != nil {
|
||||
log.Errorf("fail to enable import privileges: %s", err)
|
||||
return "", err
|
||||
return "", errors.Wrapf(err, "EnableImageImport")
|
||||
}
|
||||
|
||||
task, err := self.region.ImportImage(imageName, image.OsArch, image.OsType, image.OsDistribution, bucketName, image.ImageId)
|
||||
|
||||
if err != nil {
|
||||
log.Errorf("ImportImage error %s %s %s", image.ImageId, bucketName, err)
|
||||
return "", err
|
||||
return "", errors.Wrapf(err, "ImportImage %s %s", image.ImageId, bucketName)
|
||||
}
|
||||
|
||||
// timeout: 1hour = 3600 seconds
|
||||
err = self.region.waitTaskStatus(ImportImageTask, task.TaskId, TaskStatusFinished, 15*time.Second, 3600*time.Second)
|
||||
if err != nil {
|
||||
log.Errorf("waitTaskStatus %s", err)
|
||||
return task.ImageId, err
|
||||
return task.ImageId, errors.Wrapf(err, "waitTaskStatus")
|
||||
}
|
||||
|
||||
return task.ImageId, nil
|
||||
|
||||
@@ -25,6 +25,7 @@ import (
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
"yunion.io/x/pkg/errors"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis/billing"
|
||||
api "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
@@ -188,7 +189,7 @@ func (self *SDisk) GetMountpoint() string {
|
||||
}
|
||||
|
||||
func (self *SDisk) Delete(ctx context.Context) error {
|
||||
if _, err := self.storage.zone.region.GetDisk(self.DiskId); err == cloudprovider.ErrNotFound {
|
||||
if _, err := self.storage.zone.region.GetDisk(self.DiskId); err != nil && errors.Cause(err) == cloudprovider.ErrNotFound {
|
||||
log.Errorf("Failed to find disk %s when delete", self.DiskId)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -380,7 +380,7 @@ func (self *SRegion) GetIHostById(id string) (cloudprovider.ICloudHost, error) {
|
||||
ihost, err := izones[i].GetIHostById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -413,7 +413,7 @@ func (self *SRegion) GetIStorageById(id string) (cloudprovider.ICloudStorage, er
|
||||
istore, err := izones[i].GetIStorageById(id)
|
||||
if err == nil {
|
||||
return istore, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package esxi
|
||||
|
||||
import (
|
||||
"yunion.io/x/pkg/errors"
|
||||
"yunion.io/x/pkg/utils"
|
||||
|
||||
api "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
@@ -53,7 +54,7 @@ func (cli *SESXiClient) GetIVMById(id string) (cloudprovider.ICloudVM, error) {
|
||||
}
|
||||
for _, host := range hosts {
|
||||
vm, err := host.GetIVMById(id)
|
||||
if err != cloudprovider.ErrNotFound {
|
||||
if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return vm, err
|
||||
}
|
||||
}
|
||||
@@ -67,7 +68,7 @@ func (self *SESXiClient) GetIDiskById(id string) (cloudprovider.ICloudDisk, erro
|
||||
}
|
||||
for _, storage := range storages {
|
||||
disk, err := storage.GetIDiskById(id)
|
||||
if err != cloudprovider.ErrNotFound {
|
||||
if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return disk, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1260,7 +1260,7 @@ func (host *SHost) newLocalStorageCache() (*SDatastoreImageCache, error) {
|
||||
}
|
||||
_, err := ds.CheckFile(ctx, IMAGE_CACHE_DIR_NAME)
|
||||
if err != nil {
|
||||
if err != cloudprovider.ErrNotFound {
|
||||
if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
// return nil, err
|
||||
if len(errmsg) > 0 {
|
||||
errmsg += ","
|
||||
|
||||
@@ -247,7 +247,7 @@ func (region *SRegion) GetIHostById(id string) (cloudprovider.ICloudHost, error)
|
||||
ihost, err := izones[i].GetIHostById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -384,7 +384,7 @@ func (self *SHuaweiClient) GetIHostById(id string) (cloudprovider.ICloudHost, er
|
||||
ihost, err := self.iregions[i].GetIHostById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -396,7 +396,7 @@ func (self *SHuaweiClient) GetIVpcById(id string) (cloudprovider.ICloudVpc, erro
|
||||
ivpc, err := self.iregions[i].GetIVpcById(id)
|
||||
if err == nil {
|
||||
return ivpc, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -408,7 +408,7 @@ func (self *SHuaweiClient) GetIStorageById(id string) (cloudprovider.ICloudStora
|
||||
istorage, err := self.iregions[i].GetIStorageById(id)
|
||||
if err == nil {
|
||||
return istorage, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -644,7 +644,7 @@ func (self *SRegion) GetIHostById(id string) (cloudprovider.ICloudHost, error) {
|
||||
ihost, err := izones[i].GetIHostById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -677,7 +677,7 @@ func (self *SRegion) GetIStorageById(id string) (cloudprovider.ICloudStorage, er
|
||||
istore, err := izones[i].GetIStorageById(id)
|
||||
if err == nil {
|
||||
return istore, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ func (region *SRegion) GetIHostById(id string) (cloudprovider.ICloudHost, error)
|
||||
ihost, err := izones[i].GetIHostById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -883,7 +883,7 @@ func (client *SQcloudClient) GetIHostById(id string) (cloudprovider.ICloudHost,
|
||||
ihost, err := client.iregions[i].GetIHostById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -895,7 +895,7 @@ func (client *SQcloudClient) GetIVpcById(id string) (cloudprovider.ICloudVpc, er
|
||||
ihost, err := client.iregions[i].GetIVpcById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -907,7 +907,7 @@ func (client *SQcloudClient) GetIStorageById(id string) (cloudprovider.ICloudSto
|
||||
ihost, err := client.iregions[i].GetIStorageById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -322,7 +322,7 @@ func (self *SRegion) GetIHostById(id string) (cloudprovider.ICloudHost, error) {
|
||||
ihost, err := izones[i].GetIHostById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -338,7 +338,7 @@ func (self *SRegion) GetIStorageById(id string) (cloudprovider.ICloudStorage, er
|
||||
istore, err := izones[i].GetIStorageById(id)
|
||||
if err == nil {
|
||||
return istore, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,7 +310,7 @@ func (self *SRegion) GetIHostById(id string) (cloudprovider.ICloudHost, error) {
|
||||
ihost, err := izones[i].GetIHostById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -343,7 +343,7 @@ func (self *SRegion) GetIStorageById(id string) (cloudprovider.ICloudStorage, er
|
||||
istore, err := izones[i].GetIStorageById(id)
|
||||
if err == nil {
|
||||
return istore, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,7 +337,7 @@ func (self *SUcloudClient) GetIHostById(id string) (cloudprovider.ICloudHost, er
|
||||
ihost, err := self.iregions[i].GetIHostById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -349,7 +349,7 @@ func (self *SUcloudClient) GetIVpcById(id string) (cloudprovider.ICloudVpc, erro
|
||||
ihost, err := self.iregions[i].GetIVpcById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -361,7 +361,7 @@ func (self *SUcloudClient) GetIStorageById(id string) (cloudprovider.ICloudStora
|
||||
ihost, err := self.iregions[i].GetIStorageById(id)
|
||||
if err == nil {
|
||||
return ihost, nil
|
||||
} else if err != cloudprovider.ErrNotFound {
|
||||
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user