From 2353581da89bf579f84de4e23fa48271400d09b9 Mon Sep 17 00:00:00 2001 From: badrAZ Date: Fri, 16 Nov 2018 14:05:58 +0100 Subject: [PATCH] chore(xo-web/backup-ng): improve setting power state implementation (#3684) --- .../xo-web/src/xo-app/backup-ng/new/index.js | 22 +++++++------ .../src/xo-app/backup-ng/new/smart-backup.js | 32 ++++++++++++++++--- 2 files changed, 41 insertions(+), 13 deletions(-) diff --git a/packages/xo-web/src/xo-app/backup-ng/new/index.js b/packages/xo-web/src/xo-app/backup-ng/new/index.js index c5adc938e..519f79e78 100644 --- a/packages/xo-web/src/xo-app/backup-ng/new/index.js +++ b/packages/xo-web/src/xo-app/backup-ng/new/index.js @@ -112,7 +112,6 @@ const constructPattern = values => const destructVmsPattern = pattern => pattern.id === undefined ? { - powerState: pattern.power_state || 'All', $pool: destructSmartPattern(pattern.$pool), tags: destructSmartPattern(pattern.tags, flatten), } @@ -143,6 +142,7 @@ const createDoesRetentionExist = name => { } const getInitialState = () => ({ + _vmsPattern: undefined, $pool: {}, backupMode: false, compression: undefined, @@ -152,7 +152,6 @@ const getInitialState = () => ({ drMode: false, name: '', paramsUpdated: false, - powerState: 'All', remotes: [], schedules: {}, settings: undefined, @@ -484,9 +483,8 @@ export default decorate([ snapshotRetention, }), }), - setPowerState: (_, powerState) => state => ({ - ...state, - powerState, + onVmsPatternChange: (_, _vmsPattern) => ({ + _vmsPattern, }), setPoolValues: (_, values) => state => ({ ...state, @@ -566,6 +564,10 @@ export default decorate([ inputReportWhenId: generateId, inputTimeoutId: generateId, + vmsPattern: ({ _vmsPattern }, { job }) => + defined(_vmsPattern, () => job.vms, { + type: 'VM', + }), needUpdateParams: (state, { job, schedules }) => job !== undefined && schedules !== undefined && !state.paramsUpdated, isJobInvalid: state => @@ -599,11 +601,10 @@ export default decorate([ snapshotRetentionExists: createDoesRetentionExist('snapshotRetention'), isDelta: state => state.deltaMode || state.crMode, isFull: state => state.backupMode || state.drMode, - vmsSmartPattern: ({ $pool, powerState, tags }) => ({ + vmsSmartPattern: ({ $pool, tags, vmsPattern }) => ({ + ...vmsPattern, $pool: constructSmartPattern($pool, resolveIds), - power_state: powerState === 'All' ? undefined : powerState, tags: constructSmartPattern(tags, normalizeTagValues), - type: 'VM', }), vmPredicate: ({ isDelta }, { hostsById, poolsById }) => ({ $container, @@ -986,7 +987,10 @@ export default decorate([ {state.smartMode ? ( - + ) : ( (_, { pattern, onChange }) => { + onChange({ + ...pattern, + ...value, + }) + }, + setPowerState ({ setPattern }, powerState) { + setPattern({ + power_state: powerState === 'All' ? undefined : powerState, + }) + }, + }, + }), injectState, - ({ state, effects, vms }) => ( + ({ state, effects, vms, pattern }) => (