feat(vm/delete): force param to bypass blocked_operations (#648)
See vatesfr/xo-web#2525
This commit is contained in:
parent
d627fad299
commit
d52bed9618
@ -322,7 +322,7 @@ create.resolve = {
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
async function delete_ ({ vm, delete_disks: deleteDisks = false }) {
|
||||
async function delete_ ({ vm, delete_disks: deleteDisks = false, force }) {
|
||||
const xapi = this.getXapi(vm)
|
||||
|
||||
this.getAllAcls().then(acls => {
|
||||
@ -365,7 +365,7 @@ async function delete_ ({ vm, delete_disks: deleteDisks = false }) {
|
||||
)
|
||||
}
|
||||
|
||||
return xapi.deleteVm(vm._xapiId, deleteDisks)
|
||||
return xapi.deleteVm(vm._xapiId, deleteDisks, force)
|
||||
}
|
||||
|
||||
delete_.params = {
|
||||
@ -375,6 +375,11 @@ delete_.params = {
|
||||
optional: true,
|
||||
type: 'boolean',
|
||||
},
|
||||
|
||||
force: {
|
||||
optional: true,
|
||||
type: 'boolean',
|
||||
},
|
||||
}
|
||||
delete_.resolve = {
|
||||
vm: ['id', ['VM', 'VM-snapshot', 'VM-template'], 'administrate'],
|
||||
|
@ -650,7 +650,7 @@ export default class Xapi extends XapiBase {
|
||||
}))
|
||||
}
|
||||
|
||||
async _deleteVm (vm, deleteDisks = true) {
|
||||
async _deleteVm (vm, deleteDisks = true, force = false) {
|
||||
debug(`Deleting VM ${vm.name_label}`)
|
||||
|
||||
const { $ref } = vm
|
||||
@ -661,6 +661,12 @@ export default class Xapi extends XapiBase {
|
||||
await this.call('VM.hard_shutdown', $ref)
|
||||
}
|
||||
|
||||
if (force) {
|
||||
await this._updateObjectMapProperty(vm, 'blocked_operations', {
|
||||
destroy: null,
|
||||
})
|
||||
}
|
||||
|
||||
// ensure the vm record is up-to-date
|
||||
vm = await this.barrier('VM', $ref)
|
||||
|
||||
@ -702,10 +708,11 @@ export default class Xapi extends XapiBase {
|
||||
])
|
||||
}
|
||||
|
||||
async deleteVm (vmId, deleteDisks) {
|
||||
async deleteVm (vmId, deleteDisks, force) {
|
||||
return /* await */ this._deleteVm(
|
||||
this.getObject(vmId),
|
||||
deleteDisks
|
||||
deleteDisks,
|
||||
force
|
||||
)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user