@xen-orchestra/backups 0.39.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/{Backup.js → Backup.mjs} +4 -6
  2. package/{DurablePartition.js → DurablePartition.mjs} +2 -4
  3. package/{HealthCheckVmBackup.js → HealthCheckVmBackup.mjs} +2 -4
  4. package/{ImportVmBackup.js → ImportVmBackup.mjs} +6 -8
  5. package/{RemoteAdapter.js → RemoteAdapter.mjs} +69 -76
  6. package/RestoreMetadataBackup.mjs +32 -0
  7. package/{Task.js → Task.mjs} +3 -6
  8. package/_backupType.mjs +4 -0
  9. package/{_backupWorker.js → _backupWorker.mjs} +22 -22
  10. package/{_cancelableMap.js → _cancelableMap.mjs} +3 -5
  11. package/{_cleanVm.js → _cleanVm.mjs} +16 -19
  12. package/_filenameDate.mjs +6 -0
  13. package/{_getOldEntries.js → _getOldEntries.mjs} +1 -3
  14. package/{_getTmpDir.js → _getTmpDir.mjs} +5 -7
  15. package/_getVmBackupDir.mjs +5 -0
  16. package/{_incrementalVm.js → _incrementalVm.mjs} +21 -20
  17. package/{_isValidXva.js → _isValidXva.mjs} +2 -5
  18. package/{_listPartitions.js → _listPartitions.mjs} +6 -9
  19. package/{_lvm.js → _lvm.mjs} +5 -7
  20. package/_runners/{Metadata.js → Metadata.mjs} +10 -12
  21. package/_runners/{VmsRemote.js → VmsRemote.mjs} +12 -14
  22. package/_runners/{VmsXapi.js → VmsXapi.mjs} +13 -15
  23. package/_runners/{_Abstract.js → _Abstract.mjs} +7 -9
  24. package/_runners/{_PoolMetadataBackup.js → _PoolMetadataBackup.mjs} +7 -10
  25. package/_runners/{_RemoteTimeoutError.js → _RemoteTimeoutError.mjs} +1 -3
  26. package/_runners/{_XoMetadataBackup.js → _XoMetadataBackup.mjs} +14 -10
  27. package/_runners/{_createStreamThrottle.js → _createStreamThrottle.mjs} +4 -6
  28. package/_runners/{_forkStreamUnpipe.js → _forkStreamUnpipe.mjs} +4 -5
  29. package/_runners/{_getAdaptersByRemote.js → _getAdaptersByRemote.mjs} +1 -3
  30. package/_runners/_runTask.mjs +5 -0
  31. package/_runners/_vmRunners/{FullRemote.js → FullRemote.mjs} +9 -12
  32. package/_runners/_vmRunners/{FullXapi.js → FullXapi.mjs} +7 -9
  33. package/_runners/_vmRunners/{IncrementalRemote.js → IncrementalRemote.mjs} +11 -12
  34. package/_runners/_vmRunners/{IncrementalXapi.js → IncrementalXapi.mjs} +18 -20
  35. package/_runners/_vmRunners/{_Abstract.js → _Abstract.mjs} +4 -6
  36. package/_runners/_vmRunners/{_AbstractRemote.js → _AbstractRemote.mjs} +6 -6
  37. package/_runners/_vmRunners/{_AbstractXapi.js → _AbstractXapi.mjs} +14 -17
  38. package/_runners/_vmRunners/_forkDeltaExport.mjs +11 -0
  39. package/_runners/_writers/{FullRemoteWriter.js → FullRemoteWriter.mjs} +6 -8
  40. package/_runners/_writers/{FullXapiWriter.js → FullXapiWriter.mjs} +10 -12
  41. package/_runners/_writers/{IncrementalRemoteWriter.js → IncrementalRemoteWriter.mjs} +22 -24
  42. package/_runners/_writers/{IncrementalXapiWriter.js → IncrementalXapiWriter.mjs} +11 -13
  43. package/_runners/_writers/{_AbstractFullWriter.js → _AbstractFullWriter.mjs} +2 -4
  44. package/_runners/_writers/{_AbstractIncrementalWriter.js → _AbstractIncrementalWriter.mjs} +2 -4
  45. package/_runners/_writers/{_AbstractWriter.js → _AbstractWriter.mjs} +3 -5
  46. package/_runners/_writers/{_MixinRemoteWriter.js → _MixinRemoteWriter.mjs} +10 -12
  47. package/_runners/_writers/{_MixinXapiWriter.js → _MixinXapiWriter.mjs} +6 -8
  48. package/_runners/_writers/_checkVhd.mjs +6 -0
  49. package/_runners/_writers/{_listReplicatedVms.js → _listReplicatedVms.mjs} +1 -3
  50. package/_runners/_writers/{_packUuid.js → _packUuid.mjs} +1 -3
  51. package/{_watchStreamSize.js → _watchStreamSize.mjs} +1 -3
  52. package/{extractIdsFromSimplePattern.js → extractIdsFromSimplePattern.mjs} +1 -3
  53. package/{formatVmBackups.js → formatVmBackups.mjs} +3 -5
  54. package/merge-worker/cli.mjs +103 -0
  55. package/merge-worker/config.toml +1 -0
  56. package/merge-worker/{index.js → index.mjs} +6 -7
  57. package/package.json +12 -9
  58. package/{parseMetadataBackupId.js → parseMetadataBackupId.mjs} +2 -4
  59. package/{runBackupWorker.js → runBackupWorker.mjs} +4 -7
  60. package/RestoreMetadataBackup.js +0 -29
  61. package/_backupType.js +0 -6
  62. package/_filenameDate.js +0 -8
  63. package/_getVmBackupDir.js +0 -8
  64. package/_runners/_runTask.js +0 -6
  65. package/_runners/_vmRunners/_forkDeltaExport.js +0 -12
  66. package/_runners/_writers/_checkVhd.js +0 -8
  67. package/merge-worker/cli.js +0 -92
@@ -1,92 +0,0 @@
1
- #!/usr/bin/env node
2
- // eslint-disable-next-line eslint-comments/disable-enable-pair
3
- /* eslint-disable n/shebang */
4
-
5
- 'use strict'
6
-
7
- const { catchGlobalErrors } = require('@xen-orchestra/log/configure')
8
- const { createLogger } = require('@xen-orchestra/log')
9
- const { getSyncedHandler } = require('@xen-orchestra/fs')
10
- const { join } = require('path')
11
- const Disposable = require('promise-toolbox/Disposable')
12
- const min = require('lodash/min')
13
-
14
- const { getVmBackupDir } = require('../_getVmBackupDir.js')
15
- const { RemoteAdapter } = require('../RemoteAdapter.js')
16
-
17
- const { CLEAN_VM_QUEUE } = require('./index.js')
18
-
19
- // -------------------------------------------------------------------
20
-
21
- catchGlobalErrors(createLogger('xo:backups:mergeWorker'))
22
-
23
- const { fatal, info, warn } = createLogger('xo:backups:mergeWorker')
24
-
25
- // -------------------------------------------------------------------
26
-
27
- const main = Disposable.wrap(async function* main(args) {
28
- const handler = yield getSyncedHandler({ url: 'file://' + process.cwd() })
29
-
30
- yield handler.lock(CLEAN_VM_QUEUE)
31
-
32
- const adapter = new RemoteAdapter(handler)
33
-
34
- const listRetry = async () => {
35
- const timeoutResolver = resolve => setTimeout(resolve, 10e3)
36
- for (let i = 0; i < 10; ++i) {
37
- const entries = await handler.list(CLEAN_VM_QUEUE)
38
- if (entries.length !== 0) {
39
- return entries
40
- }
41
- await new Promise(timeoutResolver)
42
- }
43
- }
44
-
45
- let taskFiles
46
- while ((taskFiles = await listRetry()) !== undefined) {
47
- const taskFileBasename = min(taskFiles)
48
- const previousTaskFile = join(CLEAN_VM_QUEUE, taskFileBasename)
49
- const taskFile = join(CLEAN_VM_QUEUE, '_' + taskFileBasename)
50
-
51
- // move this task to the end
52
- try {
53
- await handler.rename(previousTaskFile, taskFile)
54
- } catch (error) {
55
- // this error occurs if the task failed too many times (i.e. too many `_` prefixes)
56
- // there is nothing more that can be done
57
- if (error.code === 'ENAMETOOLONG') {
58
- await handler.unlink(previousTaskFile)
59
- }
60
-
61
- throw error
62
- }
63
-
64
- try {
65
- const vmDir = getVmBackupDir(String(await handler.readFile(taskFile)))
66
- try {
67
- await adapter.cleanVm(vmDir, { merge: true, logInfo: info, logWarn: warn, remove: true })
68
- } catch (error) {
69
- // consider the clean successful if the VM dir is missing
70
- if (error.code !== 'ENOENT') {
71
- throw error
72
- }
73
- }
74
-
75
- handler.unlink(taskFile).catch(error => warn('deleting task failure', { error }))
76
- } catch (error) {
77
- warn('failure handling task', { error })
78
- }
79
- }
80
- })
81
-
82
- info('starting')
83
- main(process.argv.slice(2)).then(
84
- () => {
85
- info('bye :-)')
86
- },
87
- error => {
88
- fatal(error)
89
-
90
- process.exit(1)
91
- }
92
- )