From ffab0b967b1e48fd7c0a3f203ee55b8602e6ec3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E9=9B=A8?= Date: Mon, 28 Oct 2019 11:26:43 +0800 Subject: [PATCH] fix: local snapshot's ownerId should be same with its disk even if extsnapshot's project has corresponding cloud project --- pkg/compute/models/snapshots.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/pkg/compute/models/snapshots.go b/pkg/compute/models/snapshots.go index edab90398a..da6e1fe7af 100644 --- a/pkg/compute/models/snapshots.go +++ b/pkg/compute/models/snapshots.go @@ -713,14 +713,12 @@ func (self *SSnapshot) SyncWithCloudSnapshot(ctx context.Context, userCred mccli // bugfix for now: disk, err := self.GetDisk() - if err == sql.ErrNoRows { - syncOwnerId = self.GetOwnerId() - } else if err != nil { + if err != nil && err != sql.ErrNoRows { return errors.Wrapf(err, "get disk of snapshot %s error", self.Id) - } else { - syncOwnerId = disk.GetOwnerId() } - SyncCloudProject(userCred, self, syncOwnerId, ext, self.ManagerId) + if err == nil { + self.SyncCloudProjectId(userCred, disk.GetOwnerId()) + } return nil } @@ -760,9 +758,10 @@ func (manager *SSnapshotManager) newFromCloudSnapshot(ctx context.Context, userC // bugfix for now: if localDisk != nil { - syncOwnerId = localDisk.GetOwnerId() + snapshot.SyncCloudProjectId(userCred, localDisk.GetOwnerId()) + } else { + SyncCloudProject(userCred, &snapshot, syncOwnerId, extSnapshot, snapshot.ManagerId) } - SyncCloudProject(userCred, &snapshot, syncOwnerId, extSnapshot, snapshot.ManagerId) db.OpsLog.LogEvent(&snapshot, db.ACT_CREATE, snapshot.GetShortDesc(ctx), userCred)