feat(xo-server#deleteVmBackupNg): use @xen-orchestra/backups lib (#5623)

This commit is contained in:
badrAZ 2021-02-26 11:40:28 +01:00 committed by GitHub
parent baa5847949
commit 2952b5a7ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -782,27 +782,17 @@ export default class BackupNg {
async deleteVmBackupNg(id: string): Promise<void> {
const app = this._app
const { metadataFilename, remoteId } = parseVmBackupId(id)
const { proxy, url, options } = await app.getRemoteWithCredentials(remoteId)
if (proxy !== undefined) {
await app.callProxyMethod(proxy, 'backup.deleteVmBackup', {
const remote = await app.getRemoteWithCredentials(remoteId)
if (remote.proxy !== undefined) {
await app.callProxyMethod(remote.proxy, 'backup.deleteVmBackup', {
filename: metadataFilename,
remote: {
url,
options,
url: remote.url,
options: remote.options,
},
})
} else {
const handler = await app.getRemoteHandler(remoteId)
const metadata: Metadata = JSON.parse(String(await handler.readFile(metadataFilename)))
metadata._filename = metadataFilename
if (metadata.mode === 'delta') {
await this._deleteDeltaVmBackups(handler, [metadata])
} else if (metadata.mode === 'full') {
await this._deleteFullVmBackups(handler, [metadata])
} else {
throw new Error(`no deleter for backup mode ${metadata.mode}`)
}
await using(app.getBackupsRemoteAdapter(remoteId), adapter => adapter.deleteVmBackup(metadataFilename))
}
this._listVmBackupsOnRemote(REMOVE_CACHE_ENTRY, remoteId)