Compare commits

...

2 Commits

Author SHA1 Message Date
b-Nollet
838576c8be adding default message for unexisting VMs in backups 2024-01-29 07:59:23 +01:00
b-Nollet
e8bc723f98 fix(backup): prevent task creation for empty directories 2024-01-29 07:43:24 +01:00
3 changed files with 10 additions and 2 deletions

View File

@ -86,7 +86,12 @@ export const VmsRemote = class RemoteVmsBackupRunner extends Abstract {
throw new Error(`Job mode ${job.mode} not implemented for mirror backup`)
}
return runTask(taskStart, () => vmBackup.run())
return sourceRemoteAdapter
.listVmBackups(vmUuid, ({ mode }) => mode === job.mode)
.then(vmBackups => {
// avoiding to create tasks for empty directories
if (vmBackups.length > 0) return runTask(taskStart, () => vmBackup.run())
})
}
const { concurrency } = settings
await asyncMapSettled(vmsUuids, !concurrency ? handleVm : limitConcurrency(concurrency)(handleVm))

View File

@ -42,6 +42,7 @@
- [Backup/Restore] Don't count memory as a key (i.e. complete) disk [Forum#8212](https://xcp-ng.org/forum/post/69591) (PR [#7315](https://github.com/vatesfr/xen-orchestra/pull/7315))
- [Pool/patches] Disable Rolling Pool Update button if host is alone in its pool [#6415](https://github.com/vatesfr/xen-orchestra/issues/6415) (PR [#7286](https://github.com/vatesfr/xen-orchestra/pull/7286))
- [PIF] Fix IPv4 reconfiguration only worked when the IPv4 mode was updated (PR [#7324](https://github.com/vatesfr/xen-orchestra/pull/7324))
- [Backup] Removed display of empty directories for mirror backups (PR [#7340](https://github.com/vatesfr/xen-orchestra/pull/7340))
### Packages to release

View File

@ -54,6 +54,7 @@ const TaskDuration = ({ task }) =>
const UNHEALTHY_VDI_CHAIN_ERROR = 'unhealthy VDI chain'
const UNHEALTHY_VDI_CHAIN_LINK = 'https://xen-orchestra.com/docs/backup_troubleshooting.html#vdi-chain-protection'
const VM_NOT_PRESENT = 'This VM is no longer present in XO'
const TaskError = ({ task }) => {
let message
@ -188,7 +189,8 @@ TaskInfos.propTypes = {
const VmTask = ({ children, className, restartVmJob, task }) => (
<li className={className}>
<Vm id={task.data.id} name={task.data.name_label} link newTab /> <TaskStateInfos status={task.status} />{' '}
<Vm id={task.data.id} name={task.data.name_label ?? VM_NOT_PRESENT} link newTab />{' '}
<TaskStateInfos status={task.status} />{' '}
{restartVmJob !== undefined && hasTaskFailed(task) && (
<ButtonGroup>
<ActionButton