diff --git a/pkg/cloudcommon/db/caller.go b/pkg/cloudcommon/db/caller.go index edb4fc5279..720b923b9d 100644 --- a/pkg/cloudcommon/db/caller.go +++ b/pkg/cloudcommon/db/caller.go @@ -301,8 +301,9 @@ func FetchCustomizeColumns( retVal := make([]*jsonutils.JSONDict, ret[0].Len()) for i := 0; i < ret[0].Len(); i += 1 { jsonDict := ValueToJSONDict(ret[0].Index(i)) - jsonDict.Update(jsonutils.Marshal(objs[i]).(*jsonutils.JSONDict)) - retVal[i] = jsonDict + objDict := jsonutils.Marshal(objs[i]).(*jsonutils.JSONDict) + objDict.Update(jsonDict) + retVal[i] = objDict } return retVal, nil } diff --git a/pkg/compute/models/snapshotpolicy.go b/pkg/compute/models/snapshotpolicy.go index e7486e51d1..1be9e1fe9f 100644 --- a/pkg/compute/models/snapshotpolicy.go +++ b/pkg/compute/models/snapshotpolicy.go @@ -310,11 +310,11 @@ func (sp *SSnapshotPolicy) DetachAfterDelete(ctx context.Context, userCred mccli func (sp *SSnapshotPolicy) CustomizeDelete(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) error { // check if sp bind to some disks - sds, err := SnapshotPolicyDiskManager.FetchAllBySnapshotpolicyID(ctx, userCred, sp.GetId()) + count, err := SnapshotPolicyDiskManager.FetchDiskCountBySPID(sp.Id) if err != nil { - return errors.Wrap(err, "fetch bind info failed") + return errors.Wrap(err, "unable to FetchDiskCountBySPID") } - if len(sds) != 0 { + if count != 0 { return httperrors.NewBadRequestError("Couldn't delete snapshot policy binding to disks") } sp.SetStatus(userCred, api.SNAPSHOT_POLICY_DELETING, "")