feat(region): add server delete options

This commit is contained in:
Qu Xuan
2020-12-28 10:51:39 +08:00
parent 4f9d6d2005
commit a9ea3839d0
2 changed files with 25 additions and 12 deletions
+22
View File
@@ -482,3 +482,25 @@ type ServerSaveImageInput struct {
// swagger: ignore
ImageId string
}
type ServerDeleteInput struct {
// 是否越过回收站直接删除
// default: false
OverridePendingDelete bool
// 是否仅删除本地资源
// default: false
Purge bool
// 是否删除快照
// default: false
DeleteSnapshots bool
// 是否删除关联的EIP
// default: false
DeleteEip bool
// 是否删除关联的数据盘
// default: false
DeleteDisks bool
}
+3 -12
View File
@@ -3823,18 +3823,9 @@ func (self *SGuest) AllowDeleteItem(ctx context.Context, userCred mcclient.Token
return self.IsOwner(userCred) || db.IsAdminAllowDelete(userCred, self)
}
func (self *SGuest) CustomizeDelete(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) error {
var (
overridePendingDelete = false
purge = false
deleteSnapshots = false
)
if query != nil {
overridePendingDelete = jsonutils.QueryBoolean(query, "override_pending_delete", false)
purge = jsonutils.QueryBoolean(query, "purge", false)
deleteSnapshots = jsonutils.QueryBoolean(query, "delete_snapshots", false)
}
return self.StartDeleteGuestTask(ctx, userCred, "", purge, overridePendingDelete, deleteSnapshots)
// 删除虚拟机
func (self *SGuest) CustomizeDelete(ctx context.Context, userCred mcclient.TokenCredential, query api.ServerDeleteInput, data jsonutils.JSONObject) error {
return self.StartDeleteGuestTask(ctx, userCred, "", query.Purge, query.OverridePendingDelete, query.DeleteSnapshots)
}
func (self *SGuest) DeleteAllDisksInDB(ctx context.Context, userCred mcclient.TokenCredential) error {