From f62c5fa22ed2dd1395b445af2b76029aa99381e1 Mon Sep 17 00:00:00 2001 From: TangBin Date: Tue, 13 Nov 2018 19:19:04 +0800 Subject: [PATCH] snapshot region id bugfix --- pkg/compute/guestdrivers/aws.go | 8 +++++++- pkg/compute/models/cloudregions.go | 2 +- pkg/util/aws/snapshot.go | 3 ++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pkg/compute/guestdrivers/aws.go b/pkg/compute/guestdrivers/aws.go index 36fa893b8f..ca3d31a513 100644 --- a/pkg/compute/guestdrivers/aws.go +++ b/pkg/compute/guestdrivers/aws.go @@ -308,6 +308,12 @@ func (self *SAwsGuestDriver) RequestDiskSnapshot(ctx context.Context, guest *mod if err != nil { return err } + + zone := disk.GetZone() + if zone == nil { + return fmt.Errorf("can't not fetch zone by disk %s", disk.Id) + } + iSnapshot, _ := models.SnapshotManager.FetchById(snapshotId) snapshot := iSnapshot.(*models.SSnapshot) taskman.LocalTaskRun(task, func() (jsonutils.JSONObject, error) { @@ -318,7 +324,7 @@ func (self *SAwsGuestDriver) RequestDiskSnapshot(ctx context.Context, guest *mod res := jsonutils.NewDict() res.Set("snapshot_id", jsonutils.NewString(cloudSnapshot.GetId())) res.Set("manager_id", jsonutils.NewString(cloudSnapshot.GetManagerId())) - res.Set("cloudregion_id", jsonutils.NewString(cloudSnapshot.GetRegionId())) + res.Set("cloudregion_id", jsonutils.NewString(zone.CloudregionId)) return res, nil }) return nil diff --git a/pkg/compute/models/cloudregions.go b/pkg/compute/models/cloudregions.go index bf2fcd1eb3..204678c689 100644 --- a/pkg/compute/models/cloudregions.go +++ b/pkg/compute/models/cloudregions.go @@ -288,7 +288,7 @@ func (self *SCloudregion) PerformDefaultVpc(ctx context.Context, userCred mcclie func (manager *SCloudregionManager) FetchRegionById(id string) *SCloudregion { obj, err := manager.FetchById(id) if err != nil { - log.Errorf("%s", err) + log.Errorf("region %s %s", id, err) return nil } return obj.(*SCloudregion) diff --git a/pkg/util/aws/snapshot.go b/pkg/util/aws/snapshot.go index 506044282b..259fcdca39 100644 --- a/pkg/util/aws/snapshot.go +++ b/pkg/util/aws/snapshot.go @@ -95,7 +95,8 @@ func (self *SSnapshot) Delete() error { } func (self *SSnapshot) GetRegionId() string { - return self.region.GetId() + // 这里特别注意:aws没有有uuid形式的region id + return self.region.Get } func (self *SRegion) GetSnapshots(instanceId string, diskId string, snapshotName string, snapshotIds []string, offset int, limit int) ([]SSnapshot, int, error) {