From 87087d55aa22994b3bc7161c58ba8986fee4c9b6 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Wed, 3 May 2017 17:07:03 +0200 Subject: [PATCH] feat(sr): also display unmanaged VDIs (#2131) --- src/common/intl/messages.js | 2 ++ src/usage.scss | 2 +- src/xo-app/sr/index.js | 8 ++++++++ src/xo-app/sr/tab-disks.js | 6 ++++-- src/xo-app/sr/tab-general.js | 11 +++++++++++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/common/intl/messages.js b/src/common/intl/messages.js index 5b115ea8b..6352b65ff 100644 --- a/src/common/intl/messages.js +++ b/src/common/intl/messages.js @@ -24,6 +24,8 @@ var messages = { onError: 'On error', successful: 'Successful', filterNoSnapshots: 'Full disks only', + filterOnlyBaseCopy: 'Base copy only', + filterOnlyRegularDisks: 'Regular disks only', filterOnlySnapshots: 'Snapshots only', // ----- Copiable component ----- diff --git a/src/usage.scss b/src/usage.scss index b4a01fd5d..dbaa2b868 100644 --- a/src/usage.scss +++ b/src/usage.scss @@ -18,7 +18,7 @@ } .usage-element-highlight { - background-color: $brand-primary; + background-color: $brand-warning; } .usage-element-others { diff --git a/src/xo-app/sr/index.js b/src/xo-app/sr/index.js index 630aa25eb..d87f48b1c 100644 --- a/src/xo-app/sr/index.js +++ b/src/xo-app/sr/index.js @@ -77,6 +77,12 @@ import TabXosan from './tab-xosan' ) ).groupBy('VDI') +// ----------------------------------------------------------------------------- + + const getVdisUnmanaged = createGetObjectsOfType('VDI-unmanaged').pick( + createSelector(getSr, sr => sr.VDIs) + ).sort() + // ----------------------------------------------------------------------------- const getVdiSnapshots = createGetObjectsOfType('VDI-snapshot').pick( @@ -136,6 +142,7 @@ import TabXosan from './tab-xosan' pbds: getPbds(state, props), logs: getLogs(state, props), vdis: getVdis(state, props), + vdisUnmanaged: getVdisUnmanaged(state, props), vdiSnapshots: getVdiSnapshots(state, props), vdisToVmIds: getVdisToVmIds(state, props), sr @@ -216,6 +223,7 @@ export default class Sr extends Component { 'pbds', 'sr', 'vdis', + 'vdisUnmanaged', 'vdiSnapshots', 'vdisToVmIds' ])) diff --git a/src/xo-app/sr/tab-disks.js b/src/xo-app/sr/tab-disks.js index 3c71e45bb..75e669fb9 100644 --- a/src/xo-app/sr/tab-disks.js +++ b/src/xo-app/sr/tab-disks.js @@ -76,17 +76,19 @@ const COLUMNS = [ const FILTERS = { filterNoSnapshots: 'type:!VDI-snapshot', + filterOnlyBaseCopy: 'type:VDI-unmanaged', + filterOnlyRegularDisks: 'type:!VDI-unmanaged type:!VDI-snapshot', filterOnlySnapshots: 'type:VDI-snapshot' } // =================================================================== -export default ({ vdis, vdiSnapshots, vdisToVmIds }) => ( +export default ({ vdis, vdisUnmanaged, vdiSnapshots, vdisToVmIds }) => ( {!isEmpty(vdis) - ? + ? :

{_('srNoVdis')}

} diff --git a/src/xo-app/sr/tab-general.js b/src/xo-app/sr/tab-general.js index 2870c0b2a..c9884c722 100644 --- a/src/xo-app/sr/tab-general.js +++ b/src/xo-app/sr/tab-general.js @@ -12,6 +12,7 @@ import Usage, { UsageElement } from 'usage' export default ({ sr, vdis, + vdisUnmanaged, vdisToVmIds }) => @@ -34,6 +35,16 @@ export default ({ + {map(vdisUnmanaged, vdi => + {vdi.name_label} +
+ {vdisToVmIds[vdi.id] && renderXoItemFromId(vdisToVmIds[vdi.id])} + } + value={vdi.usage} + />)} {map(vdis, vdi =>