1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Renamed device status constants for clarity

This commit is contained in:
Jeremy Stretch
2018-01-25 12:20:24 -05:00
parent 33d0db5854
commit 4df128d34e
12 changed files with 48 additions and 48 deletions

View File

@ -7,8 +7,8 @@ from rest_framework.validators import UniqueTogetherValidator
from circuits.models import Circuit, CircuitTermination from circuits.models import Circuit, CircuitTermination
from dcim.constants import ( from dcim.constants import (
CONNECTION_STATUS_CHOICES, IFACE_FF_CHOICES, IFACE_MODE_CHOICES, IFACE_ORDERING_CHOICES, RACK_FACE_CHOICES, CONNECTION_STATUS_CHOICES, DEVICE_STATUS_CHOICES, IFACE_FF_CHOICES, IFACE_MODE_CHOICES, IFACE_ORDERING_CHOICES,
RACK_TYPE_CHOICES, RACK_WIDTH_CHOICES, STATUS_CHOICES, SUBDEVICE_ROLE_CHOICES, RACK_FACE_CHOICES, RACK_TYPE_CHOICES, RACK_WIDTH_CHOICES, SUBDEVICE_ROLE_CHOICES,
) )
from dcim.models import ( from dcim.models import (
ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay, ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
@ -483,7 +483,7 @@ class DeviceSerializer(CustomFieldModelSerializer):
site = NestedSiteSerializer() site = NestedSiteSerializer()
rack = NestedRackSerializer() rack = NestedRackSerializer()
face = ChoiceFieldSerializer(choices=RACK_FACE_CHOICES) face = ChoiceFieldSerializer(choices=RACK_FACE_CHOICES)
status = ChoiceFieldSerializer(choices=STATUS_CHOICES) status = ChoiceFieldSerializer(choices=DEVICE_STATUS_CHOICES)
primary_ip = DeviceIPAddressSerializer() primary_ip = DeviceIPAddressSerializer()
primary_ip4 = DeviceIPAddressSerializer() primary_ip4 = DeviceIPAddressSerializer()
primary_ip6 = DeviceIPAddressSerializer() primary_ip6 = DeviceIPAddressSerializer()

View File

@ -203,19 +203,19 @@ IFACE_MODE_CHOICES = [
] ]
# Device statuses # Device statuses
STATUS_OFFLINE = 0 DEVICE_STATUS_OFFLINE = 0
STATUS_ACTIVE = 1 DEVICE_STATUS_ACTIVE = 1
STATUS_PLANNED = 2 DEVICE_STATUS_PLANNED = 2
STATUS_STAGED = 3 DEVICE_STATUS_STAGED = 3
STATUS_FAILED = 4 DEVICE_STATUS_FAILED = 4
STATUS_INVENTORY = 5 DEVICE_STATUS_INVENTORY = 5
STATUS_CHOICES = [ DEVICE_STATUS_CHOICES = [
[STATUS_ACTIVE, 'Active'], [DEVICE_STATUS_ACTIVE, 'Active'],
[STATUS_OFFLINE, 'Offline'], [DEVICE_STATUS_OFFLINE, 'Offline'],
[STATUS_PLANNED, 'Planned'], [DEVICE_STATUS_PLANNED, 'Planned'],
[STATUS_STAGED, 'Staged'], [DEVICE_STATUS_STAGED, 'Staged'],
[STATUS_FAILED, 'Failed'], [DEVICE_STATUS_FAILED, 'Failed'],
[STATUS_INVENTORY, 'Inventory'], [DEVICE_STATUS_INVENTORY, 'Inventory'],
] ]
# Bootstrap CSS classes for device stasuses # Bootstrap CSS classes for device stasuses

View File

@ -11,7 +11,7 @@ from tenancy.models import Tenant
from utilities.filters import NullableCharFieldFilter, NumericInFilter from utilities.filters import NullableCharFieldFilter, NumericInFilter
from virtualization.models import Cluster from virtualization.models import Cluster
from .constants import ( from .constants import (
IFACE_FF_LAG, NONCONNECTABLE_IFACE_TYPES, STATUS_CHOICES, VIRTUAL_IFACE_TYPES, WIRELESS_IFACE_TYPES, DEVICE_STATUS_CHOICES, IFACE_FF_LAG, NONCONNECTABLE_IFACE_TYPES, VIRTUAL_IFACE_TYPES, WIRELESS_IFACE_TYPES,
) )
from .models import ( from .models import (
ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay, ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
@ -446,7 +446,7 @@ class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet):
label='Device model (slug)', label='Device model (slug)',
) )
status = django_filters.MultipleChoiceFilter( status = django_filters.MultipleChoiceFilter(
choices=STATUS_CHOICES, choices=DEVICE_STATUS_CHOICES,
null_value=None null_value=None
) )
is_full_depth = django_filters.BooleanFilter( is_full_depth = django_filters.BooleanFilter(

View File

@ -22,10 +22,10 @@ from utilities.forms import (
) )
from virtualization.models import Cluster from virtualization.models import Cluster
from .constants import ( from .constants import (
CONNECTION_STATUS_CHOICES, CONNECTION_STATUS_CONNECTED, IFACE_FF_CHOICES, IFACE_FF_LAG, IFACE_MODE_ACCESS, CONNECTION_STATUS_CHOICES, CONNECTION_STATUS_CONNECTED, DEVICE_STATUS_CHOICES, IFACE_FF_CHOICES, IFACE_FF_LAG,
IFACE_MODE_CHOICES, IFACE_MODE_TAGGED_ALL, IFACE_ORDERING_CHOICES, RACK_FACE_CHOICES, RACK_TYPE_CHOICES, IFACE_MODE_ACCESS, IFACE_MODE_CHOICES, IFACE_MODE_TAGGED_ALL, IFACE_ORDERING_CHOICES, RACK_FACE_CHOICES,
RACK_WIDTH_CHOICES, RACK_WIDTH_19IN, RACK_WIDTH_23IN, STATUS_CHOICES, SUBDEVICE_ROLE_CHILD, SUBDEVICE_ROLE_PARENT, RACK_TYPE_CHOICES, RACK_WIDTH_CHOICES, RACK_WIDTH_19IN, RACK_WIDTH_23IN, SUBDEVICE_ROLE_CHILD,
SUBDEVICE_ROLE_CHOICES, SUBDEVICE_ROLE_PARENT, SUBDEVICE_ROLE_CHOICES,
) )
from .formfields import MACAddressFormField from .formfields import MACAddressFormField
from .models import ( from .models import (
@ -888,7 +888,7 @@ class BaseDeviceCSVForm(forms.ModelForm):
} }
) )
status = CSVChoiceField( status = CSVChoiceField(
choices=STATUS_CHOICES, choices=DEVICE_STATUS_CHOICES,
help_text='Operational status of device' help_text='Operational status of device'
) )
@ -1025,7 +1025,7 @@ class DeviceBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
device_role = forms.ModelChoiceField(queryset=DeviceRole.objects.all(), required=False, label='Role') device_role = forms.ModelChoiceField(queryset=DeviceRole.objects.all(), required=False, label='Role')
tenant = forms.ModelChoiceField(queryset=Tenant.objects.all(), required=False) tenant = forms.ModelChoiceField(queryset=Tenant.objects.all(), required=False)
platform = forms.ModelChoiceField(queryset=Platform.objects.all(), required=False) platform = forms.ModelChoiceField(queryset=Platform.objects.all(), required=False)
status = forms.ChoiceField(choices=add_blank_choice(STATUS_CHOICES), required=False, initial='') status = forms.ChoiceField(choices=add_blank_choice(DEVICE_STATUS_CHOICES), required=False, initial='')
serial = forms.CharField(max_length=50, required=False, label='Serial Number') serial = forms.CharField(max_length=50, required=False, label='Serial Number')
class Meta: class Meta:
@ -1036,7 +1036,7 @@ def device_status_choices():
status_counts = {} status_counts = {}
for status in Device.objects.values('status').annotate(count=Count('status')).order_by('status'): for status in Device.objects.values('status').annotate(count=Count('status')).order_by('status'):
status_counts[status['status']] = status['count'] status_counts[status['status']] = status['count']
return [(s[0], '{} ({})'.format(s[1], status_counts.get(s[0], 0))) for s in STATUS_CHOICES] return [(s[0], '{} ({})'.format(s[1], status_counts.get(s[0], 0))) for s in DEVICE_STATUS_CHOICES]
class DeviceFilterForm(BootstrapMixin, CustomFieldFilterForm): class DeviceFilterForm(BootstrapMixin, CustomFieldFilterForm):

View File

@ -844,7 +844,7 @@ class Device(CreatedUpdatedModel, CustomFieldModel):
help_text='The lowest-numbered unit occupied by the device' help_text='The lowest-numbered unit occupied by the device'
) )
face = models.PositiveSmallIntegerField(blank=True, null=True, choices=RACK_FACE_CHOICES, verbose_name='Rack face') face = models.PositiveSmallIntegerField(blank=True, null=True, choices=RACK_FACE_CHOICES, verbose_name='Rack face')
status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, default=STATUS_ACTIVE, verbose_name='Status') status = models.PositiveSmallIntegerField(choices=DEVICE_STATUS_CHOICES, default=DEVICE_STATUS_ACTIVE, verbose_name='Status')
primary_ip4 = models.OneToOneField( primary_ip4 = models.OneToOneField(
'ipam.IPAddress', related_name='primary_ip4_for', on_delete=models.SET_NULL, blank=True, null=True, 'ipam.IPAddress', related_name='primary_ip4_for', on_delete=models.SET_NULL, blank=True, null=True,
verbose_name='Primary IPv4' verbose_name='Primary IPv4'

View File

@ -26,7 +26,7 @@ class DeviceTestCase(TestCase):
'face': RACK_FACE_FRONT, 'face': RACK_FACE_FRONT,
'position': 41, 'position': 41,
'platform': get_id(Platform, 'juniper-junos'), 'platform': get_id(Platform, 'juniper-junos'),
'status': STATUS_ACTIVE, 'status': DEVICE_STATUS_ACTIVE,
}) })
self.assertTrue(test.is_valid(), test.fields['position'].choices) self.assertTrue(test.is_valid(), test.fields['position'].choices)
self.assertTrue(test.save()) self.assertTrue(test.save())
@ -43,7 +43,7 @@ class DeviceTestCase(TestCase):
'face': RACK_FACE_FRONT, 'face': RACK_FACE_FRONT,
'position': 1, 'position': 1,
'platform': get_id(Platform, 'juniper-junos'), 'platform': get_id(Platform, 'juniper-junos'),
'status': STATUS_ACTIVE, 'status': DEVICE_STATUS_ACTIVE,
}) })
self.assertFalse(test.is_valid()) self.assertFalse(test.is_valid())
@ -59,7 +59,7 @@ class DeviceTestCase(TestCase):
'face': None, 'face': None,
'position': None, 'position': None,
'platform': None, 'platform': None,
'status': STATUS_ACTIVE, 'status': DEVICE_STATUS_ACTIVE,
}) })
self.assertTrue(test.is_valid()) self.assertTrue(test.is_valid())
self.assertTrue(test.save()) self.assertTrue(test.save())
@ -76,7 +76,7 @@ class DeviceTestCase(TestCase):
'face': RACK_FACE_REAR, 'face': RACK_FACE_REAR,
'position': None, 'position': None,
'platform': None, 'platform': None,
'status': STATUS_ACTIVE, 'status': DEVICE_STATUS_ACTIVE,
}) })
self.assertTrue(test.is_valid()) self.assertTrue(test.is_valid())
self.assertTrue(test.save()) self.assertTrue(test.save())

View File

@ -8,7 +8,7 @@ from django.db import transaction
from ncclient.transport.errors import AuthenticationError from ncclient.transport.errors import AuthenticationError
from paramiko import AuthenticationException from paramiko import AuthenticationException
from dcim.models import Device, InventoryItem, Site, STATUS_ACTIVE from dcim.models import DEVICE_STATUS_ACTIVE, Device, InventoryItem, Site
class Command(BaseCommand): class Command(BaseCommand):
@ -41,7 +41,7 @@ class Command(BaseCommand):
self.password = getpass("Password: ") self.password = getpass("Password: ")
# Attempt to inventory only active devices # Attempt to inventory only active devices
device_list = Device.objects.filter(status=STATUS_ACTIVE) device_list = Device.objects.filter(status=DEVICE_STATUS_ACTIVE)
# --site: Include only devices belonging to specified site(s) # --site: Include only devices belonging to specified site(s)
if options['site']: if options['site']:

View File

@ -9,7 +9,7 @@ from extras.api.customfields import CustomFieldModelSerializer
from ipam.models import IPAddress from ipam.models import IPAddress
from tenancy.api.serializers import NestedTenantSerializer from tenancy.api.serializers import NestedTenantSerializer
from utilities.api import ChoiceFieldSerializer, ValidatedModelSerializer from utilities.api import ChoiceFieldSerializer, ValidatedModelSerializer
from virtualization.constants import STATUS_CHOICES from virtualization.constants import VM_STATUS_CHOICES
from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine
@ -94,7 +94,7 @@ class VirtualMachineIPAddressSerializer(serializers.ModelSerializer):
class VirtualMachineSerializer(CustomFieldModelSerializer): class VirtualMachineSerializer(CustomFieldModelSerializer):
status = ChoiceFieldSerializer(choices=STATUS_CHOICES) status = ChoiceFieldSerializer(choices=VM_STATUS_CHOICES)
cluster = NestedClusterSerializer() cluster = NestedClusterSerializer()
role = NestedDeviceRoleSerializer() role = NestedDeviceRoleSerializer()
tenant = NestedTenantSerializer() tenant = NestedTenantSerializer()

View File

@ -1,12 +1,12 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from dcim.constants import STATUS_ACTIVE, STATUS_OFFLINE, STATUS_STAGED from dcim.constants import DEVICE_STATUS_ACTIVE, DEVICE_STATUS_OFFLINE, DEVICE_STATUS_STAGED
# VirtualMachine statuses (replicated from Device statuses) # VirtualMachine statuses (replicated from Device statuses)
STATUS_CHOICES = [ VM_STATUS_CHOICES = [
[STATUS_ACTIVE, 'Active'], [DEVICE_STATUS_ACTIVE, 'Active'],
[STATUS_OFFLINE, 'Offline'], [DEVICE_STATUS_OFFLINE, 'Offline'],
[STATUS_STAGED, 'Staged'], [DEVICE_STATUS_STAGED, 'Staged'],
] ]
# Bootstrap CSS classes for VirtualMachine statuses # Bootstrap CSS classes for VirtualMachine statuses

View File

@ -9,7 +9,7 @@ from dcim.models import DeviceRole, Interface, Platform, Site
from extras.filters import CustomFieldFilterSet from extras.filters import CustomFieldFilterSet
from tenancy.models import Tenant from tenancy.models import Tenant
from utilities.filters import NumericInFilter from utilities.filters import NumericInFilter
from .constants import STATUS_CHOICES from .constants import VM_STATUS_CHOICES
from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine
@ -70,7 +70,7 @@ class VirtualMachineFilter(CustomFieldFilterSet):
label='Search', label='Search',
) )
status = django_filters.MultipleChoiceFilter( status = django_filters.MultipleChoiceFilter(
choices=STATUS_CHOICES, choices=VM_STATUS_CHOICES,
null_value=None null_value=None
) )
cluster_group_id = django_filters.ModelMultipleChoiceFilter( cluster_group_id = django_filters.ModelMultipleChoiceFilter(

View File

@ -16,7 +16,7 @@ from utilities.forms import (
ChainedFieldsMixin, ChainedModelChoiceField, ChainedModelMultipleChoiceField, CommentField, ComponentForm, ChainedFieldsMixin, ChainedModelChoiceField, ChainedModelMultipleChoiceField, CommentField, ComponentForm,
ConfirmationForm, CSVChoiceField, ExpandableNameField, FilterChoiceField, SlugField, SmallTextarea, ConfirmationForm, CSVChoiceField, ExpandableNameField, FilterChoiceField, SlugField, SmallTextarea,
) )
from .constants import STATUS_CHOICES from .constants import VM_STATUS_CHOICES
from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine
VIFACE_FF_CHOICES = ( VIFACE_FF_CHOICES = (
@ -264,7 +264,7 @@ class VirtualMachineForm(BootstrapMixin, TenancyForm, CustomFieldForm):
class VirtualMachineCSVForm(forms.ModelForm): class VirtualMachineCSVForm(forms.ModelForm):
status = CSVChoiceField( status = CSVChoiceField(
choices=STATUS_CHOICES, choices=VM_STATUS_CHOICES,
required=False, required=False,
help_text='Operational status of device' help_text='Operational status of device'
) )
@ -311,7 +311,7 @@ class VirtualMachineCSVForm(forms.ModelForm):
class VirtualMachineBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm): class VirtualMachineBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
pk = forms.ModelMultipleChoiceField(queryset=VirtualMachine.objects.all(), widget=forms.MultipleHiddenInput) pk = forms.ModelMultipleChoiceField(queryset=VirtualMachine.objects.all(), widget=forms.MultipleHiddenInput)
status = forms.ChoiceField(choices=add_blank_choice(STATUS_CHOICES), required=False, initial='') status = forms.ChoiceField(choices=add_blank_choice(VM_STATUS_CHOICES), required=False, initial='')
cluster = forms.ModelChoiceField(queryset=Cluster.objects.all(), required=False) cluster = forms.ModelChoiceField(queryset=Cluster.objects.all(), required=False)
role = forms.ModelChoiceField(queryset=DeviceRole.objects.filter(vm_role=True), required=False) role = forms.ModelChoiceField(queryset=DeviceRole.objects.filter(vm_role=True), required=False)
tenant = forms.ModelChoiceField(queryset=Tenant.objects.all(), required=False) tenant = forms.ModelChoiceField(queryset=Tenant.objects.all(), required=False)
@ -329,7 +329,7 @@ def vm_status_choices():
status_counts = {} status_counts = {}
for status in VirtualMachine.objects.values('status').annotate(count=Count('status')).order_by('status'): for status in VirtualMachine.objects.values('status').annotate(count=Count('status')).order_by('status'):
status_counts[status['status']] = status['count'] status_counts[status['status']] = status['count']
return [(s[0], '{} ({})'.format(s[1], status_counts.get(s[0], 0))) for s in STATUS_CHOICES] return [(s[0], '{} ({})'.format(s[1], status_counts.get(s[0], 0))) for s in VM_STATUS_CHOICES]
class VirtualMachineFilterForm(BootstrapMixin, CustomFieldFilterForm): class VirtualMachineFilterForm(BootstrapMixin, CustomFieldFilterForm):

View File

@ -11,7 +11,7 @@ from dcim.models import Device
from extras.models import CustomFieldModel, CustomFieldValue from extras.models import CustomFieldModel, CustomFieldValue
from utilities.models import CreatedUpdatedModel from utilities.models import CreatedUpdatedModel
from utilities.utils import csv_format from utilities.utils import csv_format
from .constants import STATUS_ACTIVE, STATUS_CHOICES, VM_STATUS_CLASSES from .constants import DEVICE_STATUS_ACTIVE, VM_STATUS_CHOICES, VM_STATUS_CLASSES
# #
@ -177,8 +177,8 @@ class VirtualMachine(CreatedUpdatedModel, CustomFieldModel):
unique=True unique=True
) )
status = models.PositiveSmallIntegerField( status = models.PositiveSmallIntegerField(
choices=STATUS_CHOICES, choices=VM_STATUS_CHOICES,
default=STATUS_ACTIVE, default=DEVICE_STATUS_ACTIVE,
verbose_name='Status' verbose_name='Status'
) )
role = models.ForeignKey( role = models.ForeignKey(