From 2f256291aee0295a7495f878cafb18481a742011 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 11 May 2018 20:16:00 +0200 Subject: [PATCH] fix(xo-server/backup legacy/delta import): autofix path (#2941) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Because the path might be incorrect and be `_full.vhd` instead of `_delta.vhd`. I know… --- packages/xo-server/src/xo-mixins/backups.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/xo-server/src/xo-mixins/backups.js b/packages/xo-server/src/xo-mixins/backups.js index 805fa0f6d..c6d9ca822 100644 --- a/packages/xo-server/src/xo-mixins/backups.js +++ b/packages/xo-server/src/xo-mixins/backups.js @@ -815,10 +815,17 @@ export default class { await Promise.all( mapToArray(delta.vdis, async (vdi, id) => { - streams[`${id}.vhd`] = await createVhdReadStream( - handler, - `${basePath}/${vdi.xoPath}` - ) + let path = `${basePath}/${vdi.xoPath}` + try { + await handler.getSize(path) + } catch (error) { + if (error == null || error.code !== 'ENOENT') { + throw error + } + + path = path.replace(/_delta\.vhd$/, '_full') + } + streams[`${id}.vhd`] = await createVhdReadStream(handler, path) }) )