From 3c1239cfb86feac5ce071f56430903a86b31b356 Mon Sep 17 00:00:00 2001 From: Mathieu <70369997+MathieuRA@users.noreply.github.com> Date: Tue, 26 Apr 2022 15:31:14 +0200 Subject: [PATCH] feat(xo-web/migrate/vm): allow to select private network for VIFs network (#6200) --- CHANGELOG.unreleased.md | 1 + .../src/common/xo/migrate-vm-modal/index.js | 24 ++++++++----------- .../src/common/xo/migrate-vms-modal/index.js | 23 +++++++----------- 3 files changed, 20 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index c3c362aa0..c7919b753 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -9,6 +9,7 @@ - [VM export] Feat export to `ova` format (PR [#6006](https://github.com/vatesfr/xen-orchestra/pull/6006)) - [Backup] Add _Restore Health Check_: ensure a backup is viable by doing an automatic test restore (requires guest tools in the VM) [#6148](https://github.com/vatesfr/xen-orchestra/pull/6148) +- [VM migrate] Allow to choose a private network for VIFs network (PR [#6200](https://github.com/vatesfr/xen-orchestra/pull/6200)) ### Bug fixes diff --git a/packages/xo-web/src/common/xo/migrate-vm-modal/index.js b/packages/xo-web/src/common/xo/migrate-vm-modal/index.js index cd03947f0..b81fb0be0 100644 --- a/packages/xo-web/src/common/xo/migrate-vm-modal/index.js +++ b/packages/xo-web/src/common/xo/migrate-vm-modal/index.js @@ -2,6 +2,7 @@ import BaseComponent from 'base-component' import every from 'lodash/every' import find from 'lodash/find' import forEach from 'lodash/forEach' +import isEmpty from 'lodash/isEmpty' import map from 'lodash/map' import React from 'react' import store from 'store' @@ -81,21 +82,16 @@ export default class MigrateVmModalBody extends BaseComponent { ) this._getTargetNetworkPredicate = createSelector( - createPicker( - () => this.props.pifs, - () => this.state.host.$PIFs - ), - pifs => { - if (!pifs) { - return false - } - - const networks = {} - forEach(pifs, pif => { - networks[pif.$network] = true + () => this.props.networks, + () => this.state.host.$poolId, + (networks, poolId) => { + const _networks = {} + forEach(networks, network => { + if (network.$poolId === poolId) { + _networks[network.id] = true + } }) - - return network => networks[network.id] + return isEmpty(_networks) ? false : network => _networks[network.id] } ) diff --git a/packages/xo-web/src/common/xo/migrate-vms-modal/index.js b/packages/xo-web/src/common/xo/migrate-vms-modal/index.js index 506fbebf6..67b8f42dc 100644 --- a/packages/xo-web/src/common/xo/migrate-vms-modal/index.js +++ b/packages/xo-web/src/common/xo/migrate-vms-modal/index.js @@ -68,21 +68,16 @@ export default class MigrateVmsModalBody extends BaseComponent { ) this._getTargetNetworkPredicate = createSelector( - createPicker( - () => this.props.pifs, - () => this.state.host.$PIFs - ), - pifs => { - if (!pifs) { - return false - } - - const networks = {} - forEach(pifs, pif => { - networks[pif.$network] = true + () => this.props.networks, + () => this.state.host.$poolId, + (networks, poolId) => { + const _networks = {} + forEach(networks, network => { + if (network.$poolId === poolId) { + _networks[network.id] = true + } }) - - return network => networks[network.id] + return isEmpty(_networks) ? false : network => _networks[network.id] } )