fix(Xapi#exportDeltaVm): better handling of removed VDIs (#370)
Fixes vatesfr/xo-web#1333
This commit is contained in:
parent
706cb895ad
commit
b0d400b6eb
@ -1074,11 +1074,16 @@ export default class Xapi extends XapiBase {
|
|||||||
|
|
||||||
const baseVm = baseVmId && this.getObject(baseVmId)
|
const baseVm = baseVmId && this.getObject(baseVmId)
|
||||||
|
|
||||||
|
// refs of VM's VDIs → base's VDIs.
|
||||||
const baseVdis = {}
|
const baseVdis = {}
|
||||||
baseVm && forEach(baseVm.$VBDs, vbd => {
|
baseVm && forEach(baseVm.$VBDs, vbd => {
|
||||||
const vdi = vbd.$VDI
|
let vdi, snapshotOf
|
||||||
if (vdi && !find(fullVdisRequired, id => vdi.$snapshot_of.$id === id)) {
|
if (
|
||||||
baseVdis[vbd.VDI] = vdi
|
(vdi = vbd.$VDI) &&
|
||||||
|
(snapshotOf = vdi.$snapshot_of) &&
|
||||||
|
!find(fullVdisRequired, id => snapshotOf.$id === id)
|
||||||
|
) {
|
||||||
|
baseVdis[vdi.snapshot_of] = vdi
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -1102,15 +1107,7 @@ export default class Xapi extends XapiBase {
|
|||||||
const vdi = vbd.$VDI
|
const vdi = vbd.$VDI
|
||||||
|
|
||||||
// Look for a snapshot of this vdi in the base VM.
|
// Look for a snapshot of this vdi in the base VM.
|
||||||
let baseVdi
|
const baseVdi = baseVdis[vdi.snapshot_of]
|
||||||
baseVm && forEach(vdi.$snapshot_of.$snapshots, vdi => {
|
|
||||||
if (baseVdis[vdi.$ref]) {
|
|
||||||
baseVdi = vdi
|
|
||||||
|
|
||||||
// Stop iterating.
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
vdis[vdiId] = baseVdi && !disableBaseTags
|
vdis[vdiId] = baseVdi && !disableBaseTags
|
||||||
? {
|
? {
|
||||||
|
Loading…
Reference in New Issue
Block a user