Merge pull request #230 from vatesfr/pierre-vm-migration-details
Fix intra-pool migration on different SRs
This commit is contained in:
commit
bf6bd7cbdc
@ -198,30 +198,27 @@ migrate = $coroutine ({
|
||||
mapVifsNetworks,
|
||||
migrationNetwork
|
||||
}) ->
|
||||
permissions = []
|
||||
|
||||
if mapVdisSrs
|
||||
mapVdisSrsXapi = {}
|
||||
forEach mapVdisSrs, (srId, vdiId) =>
|
||||
vdiXapiId = @getObject(vdiId, 'VDI')._xapiId
|
||||
mapVdisSrsXapi[vdiXapiId] = @getObject(srId, 'SR')._xapiId
|
||||
permissions.push([
|
||||
srId,
|
||||
'administrate'
|
||||
])
|
||||
|
||||
if mapVifsNetworks
|
||||
mapVifsNetworksXapi = {}
|
||||
forEach mapVifsNetworks, (networkId, vifId) =>
|
||||
vifXapiId = @getObject(vifId, 'VIF')._xapiId
|
||||
mapVifsNetworksXapi[vifXapiId] = @getObject(networkId, 'network')._xapiId
|
||||
|
||||
permissions = []
|
||||
for vif, network of mapVifsNetworks
|
||||
permissions.push([
|
||||
network,
|
||||
'administrate'
|
||||
])
|
||||
|
||||
for vdi, sr of mapVdisSrs
|
||||
permissions.push([
|
||||
sr,
|
||||
'administrate'
|
||||
])
|
||||
permissions.push([
|
||||
networkId,
|
||||
'administrate'
|
||||
])
|
||||
|
||||
unless yield @hasPermissions(@session.get('user_id'), permissions)
|
||||
throw new Unauthorized()
|
||||
|
14
src/xapi.js
14
src/xapi.js
@ -1531,12 +1531,14 @@ export default class Xapi extends XapiBase {
|
||||
}
|
||||
|
||||
// VIFs/Networks mapping
|
||||
const vifsMap = {}
|
||||
const defaultNetworkRef = find(host.$PIFs, pif => pif.management).$network.$ref
|
||||
for (const vif of vm.$VIFs) {
|
||||
vifsMap[vif.$ref] = mapVifsNetworks && mapVifsNetworks[vif.$id]
|
||||
? hostXapi.getObject(mapVifsNetworks[vif.$id]).$ref
|
||||
: defaultNetworkRef
|
||||
let vifsMap = {}
|
||||
if (vm.$pool !== host.$pool) {
|
||||
const defaultNetworkRef = find(host.$PIFs, pif => pif.management).$network.$ref
|
||||
for (const vif of vm.$VIFs) {
|
||||
vifsMap[vif.$ref] = mapVifsNetworks && mapVifsNetworks[vif.$id]
|
||||
? hostXapi.getObject(mapVifsNetworks[vif.$id]).$ref
|
||||
: defaultNetworkRef
|
||||
}
|
||||
}
|
||||
|
||||
const token = await hostXapi.call(
|
||||
|
Loading…
Reference in New Issue
Block a user