Skip to content

Commit 20d7297

Browse files
changes after review
1 parent 6966fa0 commit 20d7297

File tree

5 files changed

+23
-11
lines changed

5 files changed

+23
-11
lines changed

@vates/types/src/xo.mts

+2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ type BaseXoVm = {
4444
process?: string
4545
version?: string
4646
}
47+
// deprecated, use nestedVirt instead
4748
expNestedHvm: boolean
49+
nestedVirt: boolean
4850
hasVendorDevice: boolean
4951
high_availability: string
5052
installTime?: number | null

packages/xo-server/src/api/vm.mjs

+2
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,8 @@ set.params = {
750750

751751
expNestedHvm: { type: 'boolean', optional: true },
752752

753+
nestedVirt: { type: 'boolean', optional: true },
754+
753755
// Move the vm In to/Out of Self Service
754756
resourceSet: { type: ['string', 'null'], optional: true },
755757

packages/xo-server/src/xapi-object-to-xo.mjs

+5-2
Original file line numberDiff line numberDiff line change
@@ -399,9 +399,12 @@ const TRANSFORMS = {
399399
version: version && parseXml(version).docker_version,
400400
}
401401
})(),
402-
expNestedHvm: semver.satisfies(obj.hardware_platform_version, '>=3.4')
402+
// deprecated, use nestedVirt instead
403+
expNestedHvm: obj.platform['exp-nested-hvm'] === 'true',
404+
nestedVirt: obj.platform['nested-virt'] === 'true',
405+
isNestedVirtEnable: semver.satisfies(obj.hardware_platform_version, '>=3.4')
403406
? obj.platform['nested-virt'] === 'true'
404-
: obj.platform['exp-nested-hvm'] === true,
407+
: obj.platform['exp-nested-hvm'] === 'true',
405408
viridian: obj.platform.viridian === 'true',
406409
mainIpAddress: extractIpFromVmNetworks(guestMetrics?.networks),
407410
high_availability: obj.ha_restart_priority,

packages/xo-server/src/xapi/mixins/vm.mjs

+6-7
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import lte from 'lodash/lte.js'
88
import forEach from 'lodash/forEach.js'
99
import mapValues from 'lodash/mapValues.js'
1010
import noop from 'lodash/noop.js'
11-
import semver from 'semver'
1211
import { asyncMap } from '@xen-orchestra/async-map'
1312
import { createLogger } from '@xen-orchestra/log'
1413
import { decorateObject } from '@vates/decorate-with'
@@ -491,13 +490,13 @@ const methods = {
491490

492491
hasVendorDevice: true,
493492

493+
// deprecated, property kept for backward compatibility, for XCP 8.3+ use nestedVirt instead
494494
expNestedHvm: {
495-
set: (expNestedHvm, vm) => {
496-
const platformVersion = semver.satisfies(vm.hardware_platform_version, '>=3.4')
497-
? 'nested-virt'
498-
: 'exp-nested-hvm'
499-
vm.update_platform(platformVersion, expNestedHvm ? 'true' : null)
500-
},
495+
set: (expNestedHvm, vm) => vm.update_platform('exp-nested-hvm', expNestedHvm ? 'true' : null),
496+
},
497+
498+
nestedVirt: {
499+
set: (nestedVirt, vm) => vm.update_platform('nested-virt', nestedVirt ? 'true' : null),
501500
},
502501

503502
nicType: {

packages/xo-web/src/xo-app/vm/tab-advanced.js

+8-2
Original file line numberDiff line numberDiff line change
@@ -1105,8 +1105,14 @@ export default class TabAdvanced extends Component {
11051105
<td>
11061106
<Toggle
11071107
disabled={vm.power_state !== 'Halted'}
1108-
value={vm.expNestedHvm}
1109-
onChange={value => editVm(vm, { expNestedHvm: value })}
1108+
value={vm.isNestedVirtEnabled}
1109+
onChange={value => {
1110+
if (semver.satisfies(vm.platform_version, '>=3.4')) {
1111+
editVm(vm, { nestedVirt: value })
1112+
} else {
1113+
editVm(vm, { expectedHvm: value })
1114+
}
1115+
}}
11101116
/>
11111117
</td>
11121118
</tr>

0 commit comments

Comments
 (0)