From 4a0b29e1f2b3a54afc20230d022f5ed1d34ce73d Mon Sep 17 00:00:00 2001 From: "Rajaa.BARHTAOUI" Date: Thu, 16 Aug 2018 15:00:45 +0200 Subject: [PATCH] fix(xo-server/migrateVm): take VDIs of snapshot into account (#3298) See #2557 --- packages/xo-server/src/api/vm.js | 2 +- packages/xo-server/src/xapi/index.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/xo-server/src/api/vm.js b/packages/xo-server/src/api/vm.js index 933a1f744..0e6009a85 100644 --- a/packages/xo-server/src/api/vm.js +++ b/packages/xo-server/src/api/vm.js @@ -456,7 +456,7 @@ export async function migrate ({ if (mapVdisSrs) { mapVdisSrsXapi = {} forEach(mapVdisSrs, (srId, vdiId) => { - const vdiXapiId = this.getObject(vdiId, 'VDI')._xapiId + const vdiXapiId = this.getObject(vdiId, ['VDI', 'VDI-snapshot'])._xapiId mapVdisSrsXapi[vdiXapiId] = this.getObject(srId, 'SR')._xapiId return permissions.push([srId, 'administrate']) }) diff --git a/packages/xo-server/src/xapi/index.js b/packages/xo-server/src/xapi/index.js index c9229e627..46f3be50d 100644 --- a/packages/xo-server/src/xapi/index.js +++ b/packages/xo-server/src/xapi/index.js @@ -19,6 +19,7 @@ import { every, find, filter, + flatMap, flatten, groupBy, includes, @@ -1149,7 +1150,8 @@ export default class Xapi extends XapiBase { // VDIs/SRs mapping const vdis = {} const defaultSr = host.$pool.$default_SR - for (const vbd of vm.$VBDs) { + const vbds = flatMap(vm.$snapshots, '$VBDs').concat(vm.$VBDs) + for (const vbd of vbds) { const vdi = vbd.$VDI if (vbd.type === 'Disk') { vdis[vdi.$ref] =