feat(xo-server/PIF): add XO tasks for PIF.reconfigureIp
This commit is contained in:
parent
1becccffbc
commit
ef4ecce572
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import filter from 'lodash/filter.js'
|
import filter from 'lodash/filter.js'
|
||||||
import find from 'lodash/find.js'
|
import find from 'lodash/find.js'
|
||||||
|
import { Task } from '@xen-orchestra/mixins/Tasks.mjs'
|
||||||
|
|
||||||
import { IPV4_CONFIG_MODES, IPV6_CONFIG_MODES } from '../xapi/index.mjs'
|
import { IPV4_CONFIG_MODES, IPV6_CONFIG_MODES } from '../xapi/index.mjs'
|
||||||
|
|
||||||
@ -74,18 +75,33 @@ connect.resolve = {
|
|||||||
// Reconfigure IP
|
// Reconfigure IP
|
||||||
|
|
||||||
export async function reconfigureIp({ pif, mode, ip = '', netmask = '', gateway = '', dns = '', ipv6, ipv6Mode }) {
|
export async function reconfigureIp({ pif, mode, ip = '', netmask = '', gateway = '', dns = '', ipv6, ipv6Mode }) {
|
||||||
const xapi = this.getXapi(pif)
|
const task = this.tasks.create({
|
||||||
|
name: `reconfigure ip of: ${pif.device}`,
|
||||||
|
objectId: pif.uuid,
|
||||||
|
type: 'xo:pif:reconfigureIp',
|
||||||
|
})
|
||||||
|
await task.run(async () => {
|
||||||
|
const xapi = this.getXapi(pif)
|
||||||
|
|
||||||
if ((ipv6 !== '' && pif.ipv6?.[0] !== ipv6) || (ipv6Mode !== undefined && ipv6Mode !== pif.ipv6Mode)) {
|
if ((ipv6 !== '' && pif.ipv6?.[0] !== ipv6) || (ipv6Mode !== undefined && ipv6Mode !== pif.ipv6Mode)) {
|
||||||
await xapi.call('PIF.reconfigure_ipv6', pif._xapiRef, ipv6Mode, ipv6, gateway, dns)
|
await Task.run(
|
||||||
}
|
{ properties: { name: 'reconfigure IPv6', mode: ipv6Mode, ipv6, gateway, dns, objectId: pif.uuid } },
|
||||||
|
() => xapi.call('PIF.reconfigure_ipv6', pif._xapiRef, ipv6Mode, ipv6, gateway, dns)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
if (mode !== undefined && mode !== pif.mode) {
|
if (mode !== undefined && mode !== pif.mode) {
|
||||||
await xapi.call('PIF.reconfigure_ip', pif._xapiRef, mode, ip, netmask, gateway, dns)
|
await Task.run(
|
||||||
}
|
{ properties: { name: 'reconfigure IPv4', mode, ip, netmask, gateway, dns, objectId: pif.uuid } },
|
||||||
if (pif.management) {
|
() => xapi.call('PIF.reconfigure_ip', pif._xapiRef, mode, ip, netmask, gateway, dns)
|
||||||
await xapi.call('host.management_reconfigure', pif._xapiRef)
|
)
|
||||||
}
|
}
|
||||||
|
if (pif.management) {
|
||||||
|
await Task.run({ properties: { name: 'reconfigure PIF management', objectId: pif.uuid } }, () =>
|
||||||
|
xapi.call('host.management_reconfigure', pif._xapiRef)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
reconfigureIp.params = {
|
reconfigureIp.params = {
|
||||||
|
Loading…
Reference in New Issue
Block a user