From 9c83e70a28fe9b4f7ff60012c64b5f7f829e8e56 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 12 Oct 2021 09:17:42 +0200 Subject: [PATCH] feat(backups/RemoteAdapter#cleanVm): configurable merge limiter --- @xen-orchestra/backups/_cleanVm.js | 11 ++++++++--- CHANGELOG.unreleased.md | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/@xen-orchestra/backups/_cleanVm.js b/@xen-orchestra/backups/_cleanVm.js index 45c85a113..5c999b306 100644 --- a/@xen-orchestra/backups/_cleanVm.js +++ b/@xen-orchestra/backups/_cleanVm.js @@ -11,7 +11,7 @@ const { limitConcurrency } = require('limit-concurrency-decorator') // // the whole chain will be merged into parent, parent will be renamed to child // and all the others will deleted -const mergeVhdChain = limitConcurrency(1)(async function mergeVhdChain(chain, { handler, onLog, remove, merge }) { +async function mergeVhdChain(chain, { handler, onLog, remove, merge }) { assert(chain.length >= 2) let child = chain[0] @@ -73,7 +73,7 @@ const mergeVhdChain = limitConcurrency(1)(async function mergeVhdChain(chain, { }), ]) } -}) +} const noop = Function.prototype @@ -114,7 +114,12 @@ const listVhds = async (handler, vmDir) => { return { vhds, interruptedVhds } } -exports.cleanVm = async function cleanVm(vmDir, { fixMetadata, remove, merge, onLog = noop }) { +const defaultMergeLimiter = limitConcurrency(1) + +exports.cleanVm = async function cleanVm( + vmDir, + { fixMetadata, remove, merge, mergeLimiter = defaultMergeLimiter, onLog = noop } +) { const handler = this._handler const vhds = new Set() diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index 377666f00..01c527256 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -30,6 +30,7 @@ > > In case of conflict, the highest (lowest in previous list) `$version` wins. +- @xen-orchestra/backups minor - @xen-orchestra/proxy minor - xo-server patch - xo-web minor