diff --git a/docs/release-notes/version-2.7.md b/docs/release-notes/version-2.7.md index 37517475731..3e2bf8f1b29 100644 --- a/docs/release-notes/version-2.7.md +++ b/docs/release-notes/version-2.7.md @@ -5,6 +5,7 @@ * [#3766](https://github.com/netbox-community/netbox/issues/3766) - Allow custom script authors to specify the form widget for each variable * [#3799](https://github.com/netbox-community/netbox/issues/3799) - Greatly improve performance when ordering device components * [#3986](https://github.com/netbox-community/netbox/issues/3986) - Include position numbers in SVG image when rendering rack elevation +* [#4093](https://github.com/netbox-community/netbox/issues/4093) - Add multiple status choices for VMs * [#4100](https://github.com/netbox-community/netbox/issues/4100) - Add device filter to component list views * [#4113](https://github.com/netbox-community/netbox/issues/4113) - Add bulk edit functionality for device type components * [#4116](https://github.com/netbox-community/netbox/issues/4116) - Enable bulk edit and delete functions for device component list views diff --git a/netbox/virtualization/choices.py b/netbox/virtualization/choices.py index 3c4a17c7bc8..1dae88e1dc7 100644 --- a/netbox/virtualization/choices.py +++ b/netbox/virtualization/choices.py @@ -8,14 +8,20 @@ class VirtualMachineStatusChoices(ChoiceSet): - STATUS_ACTIVE = 'active' STATUS_OFFLINE = 'offline' + STATUS_ACTIVE = 'active' + STATUS_PLANNED = 'planned' STATUS_STAGED = 'staged' + STATUS_FAILED = 'failed' + STATUS_DECOMMISSIONING = 'decommissioning' CHOICES = ( - (STATUS_ACTIVE, 'Active'), (STATUS_OFFLINE, 'Offline'), + (STATUS_ACTIVE, 'Active'), + (STATUS_PLANNED, 'Planned'), (STATUS_STAGED, 'Staged'), + (STATUS_FAILED, 'Failed'), + (STATUS_DECOMMISSIONING, 'Decommissioning'), ) LEGACY_MAP = { diff --git a/netbox/virtualization/models.py b/netbox/virtualization/models.py index 3ec5ccf8e76..13b181137e9 100644 --- a/netbox/virtualization/models.py +++ b/netbox/virtualization/models.py @@ -267,9 +267,12 @@ class VirtualMachine(ChangeLoggedModel, ConfigContextModel, CustomFieldModel): ] STATUS_CLASS_MAP = { - 'active': 'success', - 'offline': 'warning', - 'staged': 'primary', + VirtualMachineStatusChoices.STATUS_OFFLINE: 'warning', + VirtualMachineStatusChoices.STATUS_ACTIVE: 'success', + VirtualMachineStatusChoices.STATUS_PLANNED: 'info', + VirtualMachineStatusChoices.STATUS_STAGED: 'primary', + VirtualMachineStatusChoices.STATUS_FAILED: 'danger', + VirtualMachineStatusChoices.STATUS_DECOMMISSIONING: 'warning', } class Meta: