diff --git a/CHANGELOG.md b/CHANGELOG.md index 0eff8bde3..ef784c884 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - [VM] Display the PVHVM status [#3014](https://github.com/vatesfr/xen-orchestra/issues/3014) (PR [#3418](https://github.com/vatesfr/xen-orchestra/pull/3418)) - [Backup reports] Ability to test the plugin (PR [#3421](https://github.com/vatesfr/xen-orchestra/pull/3421)) - [Backup NG] Ability to restart failed VMs' backup [#3339](https://github.com/vatesfr/xen-orchestra/issues/3339) (PR [#3420](https://github.com/vatesfr/xen-orchestra/pull/3420)) +- [VM] Ability to change the NIC type [#3423](https://github.com/vatesfr/xen-orchestra/issues/3423) (PR [#3440](https://github.com/vatesfr/xen-orchestra/pull/3440)) ### Bug fixes diff --git a/packages/xo-web/src/common/intl/messages.js b/packages/xo-web/src/common/intl/messages.js index c8166603b..0d1afc2b5 100644 --- a/packages/xo-web/src/common/intl/messages.js +++ b/packages/xo-web/src/common/intl/messages.js @@ -1018,6 +1018,7 @@ const messages = { vmAffinityHost: 'Affinity host', vmVga: 'VGA', vmVideoram: 'Video RAM', + vmNicType: 'NIC type', noAffinityHost: 'None', originalTemplate: 'Original template', unknownOsName: 'Unknown', diff --git a/packages/xo-web/src/xo-app/vm/tab-advanced.js b/packages/xo-web/src/xo-app/vm/tab-advanced.js index 03658483d..c3868a636 100644 --- a/packages/xo-web/src/xo-app/vm/tab-advanced.js +++ b/packages/xo-web/src/xo-app/vm/tab-advanced.js @@ -8,12 +8,12 @@ import React from 'react' import renderXoItem from 'render-xo-item' import TabButton from 'tab-button' import Tooltip from 'tooltip' -import { Toggle } from 'form' -import { Number, Size, Text, XoSelect } from 'editable' -import { Container, Row, Col } from 'grid' -import { SelectResourceSet, SelectVgpuType } from 'select-objects' -import { confirm } from 'modal' import { assign, every, find, includes, isEmpty, map, uniq } from 'lodash' +import { confirm } from 'modal' +import { Container, Row, Col } from 'grid' +import { Number, Size, Text, XoSelect } from 'editable' +import { Select, Toggle } from 'form' +import { SelectResourceSet, SelectVgpuType } from 'select-objects' import { addSubscriptions, connectStore, @@ -280,6 +280,17 @@ class CoresPerSocket extends Component { } } +const NIC_TYPE_OPTIONS = [ + { + label: 'Realtek RTL819', + value: '', + }, + { + label: 'Intel e1000', + value: 'e1000', + }, +] + @connectStore(() => { const getVgpus = createGetObjectsOfType('vgpu').pick((_, { vm }) => vm.$VGPUs) const getGpuGroup = createGetObjectsOfType('gpuGroup').pick( @@ -297,6 +308,9 @@ export default class TabAdvanced extends Component { getVmsHaValues().then(vmsHaValues => this.setState({ vmsHaValues })) } + _onNicTypeChange = value => + editVm(this.props.vm, { nicType: value === '' ? null : value }) + render () { const { container, isAdmin, vgpus, vm } = this.props return ( @@ -488,6 +502,20 @@ export default class TabAdvanced extends Component { )} +