Skip to content

Commit

Permalink
feat(xo-web,backups): fix dynamic disks count with suspend_VDI (#7315)
Browse files Browse the repository at this point in the history
`suspend_VDI` was counted as a dynamic VHD.

This commit ignores it in the computation, but add a tag if the backup is with memory.
  • Loading branch information
fbeauchamp authored Jan 19, 2024
1 parent 85ec261 commit bbcd418
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 4 deletions.
20 changes: 16 additions & 4 deletions @xen-orchestra/backups/formatVmBackups.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,20 @@ import mapValues from 'lodash/mapValues.js'
import { dirname } from 'node:path'

function formatVmBackup(backup) {
const { isVhdDifferencing } = backup
const { isVhdDifferencing, vmSnapshot } = backup

let differencingVhds
let dynamicVhds
const withMemory = vmSnapshot.suspend_VDI !== 'OpaqueRef:NULL'
// isVhdDifferencing is either undefined or an object
if (isVhdDifferencing !== undefined) {
differencingVhds = Object.values(isVhdDifferencing).filter(t => t).length
dynamicVhds = Object.values(isVhdDifferencing).filter(t => !t).length
if (withMemory) {
// the suspend VDI (memory) is always a dynamic
dynamicVhds -= 1
}
}
return {
disks:
backup.vhds === undefined
Expand All @@ -28,9 +40,9 @@ function formatVmBackup(backup) {
name_label: backup.vm.name_label,
},

// isVhdDifferencing is either undefined or an object
differencingVhds: isVhdDifferencing && Object.values(isVhdDifferencing).filter(t => t).length,
dynamicVhds: isVhdDifferencing && Object.values(isVhdDifferencing).filter(t => !t).length,
differencingVhds,
dynamicVhds,
withMemory,
}
}

Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.unreleased.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
- [Plugins] Loading, or unloading, will respectively enable, or disable, _Auto-load at server start_, this should lead to least surprising behaviors (PR [#7317](https://github.com/vatesfr/xen-orchestra/pull/7317))
- [VM/Advanced] Admin can change VM creator [Forum#7313](https://xcp-ng.org/forum/topic/7313/change-created-by-and-date-information) (PR [#7276](https://github.com/vatesfr/xen-orchestra/pull/7276))
- [Host/Reboot] Confirmation modal to reboot an updated slave host if the master is not [#7059](https://github.com/vatesfr/xen-orchestra/issues/7059) (PR [#7293](https://github.com/vatesfr/xen-orchestra/pull/7293))
- [Backup/Restore] Show whether the memory was backed up (PR [#7315](https://github.com/vatesfr/xen-orchestra/pull/7315))

### Bug fixes

Expand All @@ -32,6 +33,7 @@
- [Backup/Restore] Fix unnecessary pool selector in XO config backup restore modal [Forum#8130](https://xcp-ng.org/forum/topic/8130/xo-configbackup-restore) (PR [#7287](https://github.com/vatesfr/xen-orchestra/pull/7287))
- [File restore] Fix potential race condition in partition mount/unmount (PR [#7312](https://github.com/vatesfr/xen-orchestra/pull/7312))
- [Modal] Fix opened modal not closing when navigating to another route/URL (PR [#7301](https://github.com/vatesfr/xen-orchestra/pull/7301))
- [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))

### Packages to release

Expand Down
1 change: 1 addition & 0 deletions packages/xo-web/src/common/render-xo-item.js
Original file line number Diff line number Diff line change
Expand Up @@ -657,6 +657,7 @@ const xoItemToRender = {
{backup.dynamicVhds} {_('backupisKey')}{' '}
</span>
)}
{backup.withMemory && <span className='tag tag-info'>{_('withMemory')} </span>}
{backup.size !== undefined && <span className='tag tag-info'>{formatSize(backup.size)}</span>}{' '}
<FormattedDate
value={new Date(backup.timestamp)}
Expand Down

0 comments on commit bbcd418

Please sign in to comment.