mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-11-05 15:31:49 +08:00
disk add allowdeleteitem
This commit is contained in:
@@ -787,6 +787,19 @@ func (self *SDisk) validateDeleteCondition(ctx context.Context, isPurge bool) er
|
||||
return self.SSharableVirtualResourceBase.ValidateDeleteCondition(ctx)
|
||||
}
|
||||
|
||||
func (self *SDisk) AllowDeleteItem(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) bool {
|
||||
overridePendingDelete := false
|
||||
purge := false
|
||||
if query != nil {
|
||||
overridePendingDelete = jsonutils.QueryBoolean(query, "override_pending_delete", false)
|
||||
purge = jsonutils.QueryBoolean(query, "purge", false)
|
||||
}
|
||||
if (overridePendingDelete || purge) && !db.IsAdminAllowDelete(userCred, self) {
|
||||
return false
|
||||
}
|
||||
return self.IsOwner(userCred) || db.IsAdminAllowDelete(userCred, self)
|
||||
}
|
||||
|
||||
func (self *SDisk) GetTemplateId() string {
|
||||
return self.TemplateId
|
||||
}
|
||||
|
||||
@@ -1550,7 +1550,7 @@ func (self *SGuest) DoPendingDelete(ctx context.Context, userCred mcclient.Token
|
||||
|
||||
for _, guestdisk := range self.GetDisks() {
|
||||
disk := guestdisk.GetDisk()
|
||||
if ! disk.IsDetachable() {
|
||||
if !disk.IsDetachable() {
|
||||
disk.DoPendingDelete(ctx, userCred)
|
||||
} else {
|
||||
log.Warningf("detachable disk on pending delete guests!!! should be removed earlier")
|
||||
|
||||
@@ -106,7 +106,7 @@ func (self *GuestDeleteTask) OnDiskDetachComplete(ctx context.Context, obj db.IS
|
||||
}
|
||||
lastDisk := guestdisks[len(guestdisks)-1].GetDisk() // remove last detachable disk
|
||||
log.Debugf("lastDisk IsDetachable?? %v", lastDisk.IsDetachable())
|
||||
if ! lastDisk.IsDetachable() {
|
||||
if !lastDisk.IsDetachable() {
|
||||
self.doClearSecurityGroupComplete(ctx, guest)
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user