Revert "chore(backups/DeltaReplication): unify base VM detection" (#5861)

This reverts commit 9139c5e9d6.
See https://xcp-ng.org/forum/topic/4817
This commit is contained in:
Pierre Donias 2021-07-30 14:55:00 +02:00 committed by GitHub
parent 175be44823
commit 4f53555f09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 16 deletions

View File

@ -44,6 +44,7 @@ exports.ImportVmBackup = class ImportVmBackup {
? await xapi.VM_import(backup, srRef)
: await importDeltaVm(backup, await xapi.getRecord('SR', srRef), {
...this._importDeltaVmSettings,
detectBase: false,
})
await Promise.all([

View File

@ -143,14 +143,7 @@ exports.importDeltaVm = defer(async function importDeltaVm(
$defer,
deltaVm,
sr,
{
// can be set to a specific VM
baseVm = false,
cancelToken = CancelToken.none,
mapVdisSrs = {},
newMacAddresses = false,
} = {}
{ cancelToken = CancelToken.none, detectBase = true, mapVdisSrs = {}, newMacAddresses = false } = {}
) {
const { version } = deltaVm
if (compareVersions(version, '1.0.0') < 0) {
@ -160,8 +153,16 @@ exports.importDeltaVm = defer(async function importDeltaVm(
const vmRecord = deltaVm.vm
const xapi = sr.$xapi
if (!(baseVm === false || TAG_BASE_DELTA in vmRecord.other_config)) {
baseVm = undefined
let baseVm
if (detectBase) {
const remoteBaseVmUuid = vmRecord.other_config[TAG_BASE_DELTA]
if (remoteBaseVmUuid) {
baseVm = find(xapi.objects.all, obj => (obj = obj.other_config) && obj[TAG_COPY_SRC] === remoteBaseVmUuid)
if (!baseVm) {
throw new Error(`could not find the base VM (copy of ${remoteBaseVmUuid})`)
}
}
}
const baseVdis = {}
@ -230,7 +231,7 @@ exports.importDeltaVm = defer(async function importDeltaVm(
const vdi = vdiRecords[vdiRef]
let newVdi
const remoteBaseVdiUuid = baseVm && vdi.other_config[TAG_BASE_DELTA]
const remoteBaseVdiUuid = detectBase && vdi.other_config[TAG_BASE_DELTA]
if (remoteBaseVdiUuid) {
const baseVdi = find(baseVdis, vdi => vdi.other_config[TAG_COPY_SRC] === remoteBaseVdiUuid)
if (!baseVdi) {

View File

@ -12,8 +12,6 @@ const { MixinReplicationWriter } = require('./_MixinReplicationWriter.js')
const { listReplicatedVms } = require('./_listReplicatedVms.js')
exports.DeltaReplicationWriter = class DeltaReplicationWriter extends MixinReplicationWriter(AbstractDeltaWriter) {
#baseVm
async checkBaseVdis(baseUuidToSrcVdi, baseVm) {
const sr = this._sr
const replicatedVm = listReplicatedVms(sr.$xapi, this._backup.job.id, sr.uuid, this._backup.vm.uuid).find(
@ -23,8 +21,6 @@ exports.DeltaReplicationWriter = class DeltaReplicationWriter extends MixinRepli
return baseUuidToSrcVdi.clear()
}
this.#baseVm = replicatedVm
const xapi = replicatedVm.$xapi
const replicatedVdis = new Set(
await asyncMap(await replicatedVm.$getDisks(), async vdiRef => {
@ -92,7 +88,6 @@ exports.DeltaReplicationWriter = class DeltaReplicationWriter extends MixinRepli
targetVmRef = await importDeltaVm(
{
__proto__: deltaExport,
baseVm: this.#baseVm,
vm: {
...deltaExport.vm,
tags: [...deltaExport.vm.tags, 'Continuous Replication'],