fix(region): allow delete storagecachedimage with 'cache_failed' status

Having status 'cache_failed' means this storagecachedimage does not actually exist.
This commit is contained in:
rainzm
2020-11-25 17:43:39 +08:00
parent 5a4b95f1a5
commit 052a10f635
+8 -6
View File
@@ -273,12 +273,14 @@ func (self *SStoragecachedimage) Detach(ctx context.Context, userCred mcclient.T
}
func (self *SStoragecachedimage) ValidateDeleteCondition(ctx context.Context) error {
cnt, err := self.getReferenceCount()
if err != nil {
return httperrors.NewInternalServerError("getReferenceCount fail %s", err)
}
if cnt > 0 {
return httperrors.NewNotEmptyError("Image is in use")
if self.Status != api.CACHED_IMAGE_STATUS_CACHE_FAILED {
cnt, err := self.getReferenceCount()
if err != nil {
return httperrors.NewInternalServerError("getReferenceCount fail %s", err)
}
if cnt > 0 {
return httperrors.NewNotEmptyError("Image is in use")
}
}
return self.SJointResourceBase.ValidateDeleteCondition(ctx)
}