mirror of
https://github.com/vatesfr/xen-orchestra.git
synced 2026-11-09 17:06:13 -06:00
fix(xo-server-sdn-controller): Wrap per-network processing in try/catch
Wrap the entire per-network registration body (after the privateNetwork creation check) in a try/catch so one network's failure doesn't affect others. Reorder `xo:sdn-controller:vni` to after `privateNetwork.addNetwork()` call to manage more easily the undo.
This commit is contained in:
committed by
Sebastien Marie
parent
b9fa292b9d
commit
1329b7bc69
@@ -555,18 +555,25 @@ class SDNController extends EventEmitter {
|
||||
this.privateNetworks[uuid] = privateNetwork
|
||||
}
|
||||
|
||||
const vni = otherConfig['xo:sdn-controller:vni']
|
||||
if (vni === undefined) {
|
||||
noVniNetworks.push(network)
|
||||
} else {
|
||||
this._prevVni = Math.max(this._prevVni, +vni)
|
||||
}
|
||||
try {
|
||||
const vni = otherConfig['xo:sdn-controller:vni']
|
||||
if (vni === undefined) {
|
||||
noVniNetworks.push(network)
|
||||
} else {
|
||||
this._prevVni = Math.max(this._prevVni, +vni)
|
||||
}
|
||||
|
||||
await privateNetwork.addNetwork(network)
|
||||
await privateNetwork.addNetwork(network)
|
||||
|
||||
this._networks.set(network.$id, network.$ref)
|
||||
if (privateNetwork.center !== undefined) {
|
||||
this._starCenters.set(privateNetwork.center.$id, privateNetwork.center.$ref)
|
||||
this._networks.set(network.$id, network.$ref)
|
||||
if (privateNetwork.center !== undefined) {
|
||||
this._starCenters.set(privateNetwork.center.$id, privateNetwork.center.$ref)
|
||||
}
|
||||
} catch (error) {
|
||||
log.warn('Error registering network for SDN controller', {
|
||||
network: network.name_label,
|
||||
error,
|
||||
})
|
||||
}
|
||||
})
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user