Replaces device_role with role on device model (#13342)

* replaces device_role with role on device model #6391

* fixes lint issue #6391

* revert the database user

* revert test_runner comment

* changes as per review

* Update references to device_role column in UserConfigs

---------

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
This commit is contained in:
Abhimanyu Saharan 2023-08-02 19:25:52 +05:30 committed by GitHub
parent 79030ecab2
commit 0bb86f1e7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
37 changed files with 422 additions and 331 deletions

View File

@ -390,7 +390,7 @@ class NewBranchScript(Script):
name=f'{site.slug}-switch{i}',
site=site,
status=DeviceStatusChoices.STATUS_PLANNED,
device_role=switch_role
role=switch_role
)
switch.full_clean()
switch.save()

View File

@ -665,7 +665,8 @@ class PlatformSerializer(NetBoxModelSerializer):
class DeviceSerializer(NetBoxModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='dcim-api:device-detail')
device_type = NestedDeviceTypeSerializer()
device_role = NestedDeviceRoleSerializer()
role = NestedDeviceRoleSerializer()
device_role = NestedDeviceRoleSerializer(read_only=True, help_text='Deprecated in v3.6 in favor of `role`.')
tenant = NestedTenantSerializer(required=False, allow_null=True, default=None)
platform = NestedPlatformSerializer(required=False, allow_null=True)
site = NestedSiteSerializer()
@ -707,9 +708,9 @@ class DeviceSerializer(NetBoxModelSerializer):
class Meta:
model = Device
fields = [
'id', 'url', 'display', 'name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag',
'site', 'location', 'rack', 'position', 'face', 'latitude', 'longitude', 'parent_device', 'status',
'airflow', 'primary_ip', 'primary_ip4', 'primary_ip6', 'oob_ip', 'cluster', 'virtual_chassis',
'id', 'url', 'display', 'name', 'device_type', 'role', 'device_role', 'tenant', 'platform', 'serial',
'asset_tag', 'site', 'location', 'rack', 'position', 'face', 'latitude', 'longitude', 'parent_device',
'status', 'airflow', 'primary_ip', 'primary_ip4', 'primary_ip6', 'oob_ip', 'cluster', 'virtual_chassis',
'vc_position', 'vc_priority', 'description', 'comments', 'config_template', 'local_context_data', 'tags',
'custom_fields', 'created', 'last_updated', 'console_port_count', 'console_server_port_count',
'power_port_count', 'power_outlet_count', 'interface_count', 'front_port_count', 'rear_port_count',
@ -727,13 +728,16 @@ class DeviceSerializer(NetBoxModelSerializer):
data['device_bay'] = NestedDeviceBaySerializer(instance=device_bay, context=context).data
return data
def get_device_role(self, obj):
return obj.role
class DeviceWithConfigContextSerializer(DeviceSerializer):
config_context = serializers.SerializerMethodField(read_only=True)
class Meta(DeviceSerializer.Meta):
fields = [
'id', 'url', 'display', 'name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag',
'id', 'url', 'display', 'name', 'device_type', 'role', 'tenant', 'platform', 'serial', 'asset_tag',
'site', 'location', 'rack', 'position', 'face', 'parent_device', 'status', 'airflow', 'primary_ip',
'primary_ip4', 'primary_ip6', 'oob_ip', 'cluster', 'virtual_chassis', 'vc_position', 'vc_priority',
'description', 'comments', 'local_context_data', 'tags', 'custom_fields', 'config_context',
@ -1035,7 +1039,8 @@ class ModuleBaySerializer(NetBoxModelSerializer):
class Meta:
model = ModuleBay
fields = [
'id', 'url', 'display', 'device', 'name', 'installed_module', 'label', 'position', 'description', 'tags', 'custom_fields',
'id', 'url', 'display', 'device', 'name', 'installed_module', 'label', 'position', 'description', 'tags',
'custom_fields',
'created', 'last_updated',
]

View File

@ -362,7 +362,7 @@ class InventoryItemTemplateViewSet(NetBoxModelViewSet):
class DeviceRoleViewSet(NetBoxModelViewSet):
queryset = DeviceRole.objects.prefetch_related('config_template', 'tags').annotate(
device_count=count_related(Device, 'device_role'),
device_count=count_related(Device, 'role'),
virtualmachine_count=count_related(VirtualMachine, 'role')
)
serializer_class = serializers.DeviceRoleSerializer
@ -393,7 +393,7 @@ class DeviceViewSet(
NetBoxModelViewSet
):
queryset = Device.objects.prefetch_related(
'device_type__manufacturer', 'device_role', 'tenant', 'platform', 'site', 'location', 'rack', 'parent_bay',
'device_type__manufacturer', 'role', 'tenant', 'platform', 'site', 'location', 'rack', 'parent_bay',
'virtual_chassis__master', 'primary_ip4__nat_outside', 'primary_ip6__nat_outside', 'config_template', 'tags',
)
filterset_class = filtersets.DeviceFilterSet

View File

@ -840,12 +840,12 @@ class DeviceFilterSet(NetBoxModelFilterSet, TenancyFilterSet, ContactModelFilter
label=_('Device type (ID)'),
)
role_id = django_filters.ModelMultipleChoiceFilter(
field_name='device_role_id',
field_name='role_id',
queryset=DeviceRole.objects.all(),
label=_('Role (ID)'),
)
role = django_filters.ModelMultipleChoiceFilter(
field_name='device_role__slug',
field_name='role__slug',
queryset=DeviceRole.objects.all(),
to_field_name='slug',
label=_('Role (slug)'),
@ -1251,13 +1251,13 @@ class DeviceComponentFilterSet(django_filters.FilterSet):
to_field_name='model',
label=_('Device type (model)'),
)
device_role_id = django_filters.ModelMultipleChoiceFilter(
field_name='device__device_role',
role_id = django_filters.ModelMultipleChoiceFilter(
field_name='device__role',
queryset=DeviceRole.objects.all(),
label=_('Device role (ID)'),
)
device_role = django_filters.ModelMultipleChoiceFilter(
field_name='device__device_role__slug',
role = django_filters.ModelMultipleChoiceFilter(
field_name='device__role__slug',
queryset=DeviceRole.objects.all(),
to_field_name='slug',
label=_('Device role (slug)'),
@ -1273,6 +1273,18 @@ class DeviceComponentFilterSet(django_filters.FilterSet):
to_field_name='name',
label=_('Virtual Chassis'),
)
# TODO: Remove in v4.0
device_role_id = django_filters.ModelMultipleChoiceFilter(
field_name='device__role',
queryset=DeviceRole.objects.all(),
label=_('Device role (ID)'),
)
device_role = django_filters.ModelMultipleChoiceFilter(
field_name='device__role__slug',
queryset=DeviceRole.objects.all(),
to_field_name='slug',
label=_('Device role (slug)'),
)
def search(self, queryset, name, value):
if not value.strip():

View File

@ -553,7 +553,7 @@ class DeviceBulkEditForm(NetBoxModelBulkEditForm):
'manufacturer_id': '$manufacturer'
}
)
device_role = DynamicModelChoiceField(
role = DynamicModelChoiceField(
label=_('Device role'),
queryset=DeviceRole.objects.all(),
required=False
@ -610,7 +610,7 @@ class DeviceBulkEditForm(NetBoxModelBulkEditForm):
model = Device
fieldsets = (
(_('Device'), ('device_role', 'status', 'tenant', 'platform', 'description')),
(_('Device'), ('role', 'status', 'tenant', 'platform', 'description')),
(_('Location'), ('site', 'location')),
(_('Hardware'), ('manufacturer', 'device_type', 'airflow', 'serial')),
(_('Configuration'), ('config_template',)),

View File

@ -404,7 +404,7 @@ class PlatformImportForm(NetBoxModelImportForm):
class BaseDeviceImportForm(NetBoxModelImportForm):
device_role = CSVModelChoiceField(
role = CSVModelChoiceField(
label=_('Device role'),
queryset=DeviceRole.objects.all(),
to_field_name='name',
@ -527,7 +527,7 @@ class DeviceImportForm(BaseDeviceImportForm):
class Meta(BaseDeviceImportForm.Meta):
fields = [
'name', 'device_role', 'tenant', 'manufacturer', 'device_type', 'platform', 'serial', 'asset_tag', 'status',
'name', 'role', 'tenant', 'manufacturer', 'device_type', 'platform', 'serial', 'asset_tag', 'status',
'site', 'location', 'rack', 'position', 'face', 'latitude', 'longitude', 'parent', 'device_bay', 'airflow',
'virtual_chassis', 'vc_position', 'vc_priority', 'cluster', 'description', 'config_template', 'comments',
'tags',

View File

@ -109,7 +109,7 @@ class DeviceComponentFilterForm(NetBoxModelFilterSetForm):
required=False,
label=_('Device type')
)
device_role_id = DynamicModelMultipleChoiceField(
role_id = DynamicModelMultipleChoiceField(
queryset=DeviceRole.objects.all(),
required=False,
label=_('Device role')
@ -122,7 +122,7 @@ class DeviceComponentFilterForm(NetBoxModelFilterSetForm):
'location_id': '$location_id',
'virtual_chassis_id': '$virtual_chassis_id',
'device_type_id': '$device_type_id',
'role_id': '$device_role_id'
'role_id': '$role_id'
},
label=_('Device')
)
@ -1136,7 +1136,7 @@ class ConsolePortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
(None, ('q', 'filter_id', 'tag')),
(_('Attributes'), ('name', 'label', 'type', 'speed')),
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
(_('Device'), ('device_type_id', 'device_role_id', 'device_id', 'virtual_chassis_id')),
(_('Device'), ('device_type_id', 'role_id', 'device_id', 'virtual_chassis_id')),
(_('Connection'), ('cabled', 'connected', 'occupied')),
)
type = forms.MultipleChoiceField(
@ -1158,7 +1158,7 @@ class ConsoleServerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterF
(None, ('q', 'filter_id', 'tag')),
(_('Attributes'), ('name', 'label', 'type', 'speed')),
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
(_('Device'), ('device_type_id', 'device_role_id', 'device_id', 'virtual_chassis_id')),
(_('Device'), ('device_type_id', 'role_id', 'device_id', 'virtual_chassis_id')),
(_('Connection'), ('cabled', 'connected', 'occupied')),
)
type = forms.MultipleChoiceField(
@ -1180,7 +1180,7 @@ class PowerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
(None, ('q', 'filter_id', 'tag')),
(_('Attributes'), ('name', 'label', 'type')),
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
(_('Device'), ('device_type_id', 'device_role_id', 'device_id', 'virtual_chassis_id')),
(_('Device'), ('device_type_id', 'role_id', 'device_id', 'virtual_chassis_id')),
(_('Connection'), ('cabled', 'connected', 'occupied')),
)
type = forms.MultipleChoiceField(
@ -1197,7 +1197,7 @@ class PowerOutletFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
(None, ('q', 'filter_id', 'tag')),
(_('Attributes'), ('name', 'label', 'type')),
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
(_('Device'), ('device_type_id', 'device_role_id', 'device_id', 'virtual_chassis_id')),
(_('Device'), ('device_type_id', 'role_id', 'device_id', 'virtual_chassis_id')),
(_('Connection'), ('cabled', 'connected', 'occupied')),
)
type = forms.MultipleChoiceField(
@ -1217,7 +1217,7 @@ class InterfaceFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
(_('PoE'), ('poe_mode', 'poe_type')),
(_('Wireless'), ('rf_role', 'rf_channel', 'rf_channel_width', 'tx_power')),
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
(_('Device'), ('device_type_id', 'device_role_id', 'device_id', 'virtual_chassis_id', 'vdc_id')),
(_('Device'), ('device_type_id', 'role_id', 'device_id', 'virtual_chassis_id', 'vdc_id')),
(_('Connection'), ('cabled', 'connected', 'occupied')),
)
vdc_id = DynamicModelMultipleChoiceField(
@ -1324,7 +1324,7 @@ class FrontPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
(None, ('q', 'filter_id', 'tag')),
(_('Attributes'), ('name', 'label', 'type', 'color')),
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
(_('Device'), ('device_type_id', 'device_role_id', 'device_id', 'virtual_chassis_id')),
(_('Device'), ('device_type_id', 'role_id', 'device_id', 'virtual_chassis_id')),
(_('Cable'), ('cabled', 'occupied')),
)
model = FrontPort
@ -1346,7 +1346,7 @@ class RearPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
(None, ('q', 'filter_id', 'tag')),
(_('Attributes'), ('name', 'label', 'type', 'color')),
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
(_('Device'), ('device_type_id', 'device_role_id', 'device_id', 'virtual_chassis_id')),
(_('Device'), ('device_type_id', 'role_id', 'device_id', 'virtual_chassis_id')),
(_('Cable'), ('cabled', 'occupied')),
)
type = forms.MultipleChoiceField(
@ -1367,7 +1367,7 @@ class ModuleBayFilterForm(DeviceComponentFilterForm):
(None, ('q', 'filter_id', 'tag')),
(_('Attributes'), ('name', 'label', 'position')),
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
(_('Device'), ('device_type_id', 'device_role_id', 'device_id', 'virtual_chassis_id')),
(_('Device'), ('device_type_id', 'role_id', 'device_id', 'virtual_chassis_id')),
)
tag = TagFilterField(model)
position = forms.CharField(
@ -1382,7 +1382,7 @@ class DeviceBayFilterForm(DeviceComponentFilterForm):
(None, ('q', 'filter_id', 'tag')),
(_('Attributes'), ('name', 'label')),
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
(_('Device'), ('device_type_id', 'device_role_id', 'device_id', 'virtual_chassis_id')),
(_('Device'), ('device_type_id', 'role_id', 'device_id', 'virtual_chassis_id')),
)
tag = TagFilterField(model)
@ -1393,7 +1393,7 @@ class InventoryItemFilterForm(DeviceComponentFilterForm):
(None, ('q', 'filter_id', 'tag')),
(_('Attributes'), ('name', 'label', 'role_id', 'manufacturer_id', 'serial', 'asset_tag', 'discovered')),
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
(_('Device'), ('device_type_id', 'device_role_id', 'device_id', 'virtual_chassis_id')),
(_('Device'), ('device_type_id', 'role_id', 'device_id', 'virtual_chassis_id')),
)
role_id = DynamicModelMultipleChoiceField(
queryset=InventoryItemRole.objects.all(),

View File

@ -434,7 +434,7 @@ class DeviceForm(TenancyForm, NetBoxModelForm):
queryset=DeviceType.objects.all(),
selector=True
)
device_role = DynamicModelChoiceField(
role = DynamicModelChoiceField(
label=_('Device role'),
queryset=DeviceRole.objects.all()
)
@ -479,7 +479,7 @@ class DeviceForm(TenancyForm, NetBoxModelForm):
class Meta:
model = Device
fields = [
'name', 'device_role', 'device_type', 'serial', 'asset_tag', 'site', 'rack', 'location', 'position', 'face',
'name', 'role', 'device_type', 'serial', 'asset_tag', 'site', 'rack', 'location', 'position', 'face',
'latitude', 'longitude', 'status', 'airflow', 'platform', 'primary_ip4', 'primary_ip6', 'oob_ip', 'cluster',
'tenant_group', 'tenant', 'virtual_chassis', 'vc_position', 'vc_priority', 'description', 'config_template',
'comments', 'tags', 'local_context_data',

View File

@ -0,0 +1,35 @@
from django.db import migrations
def update_table_configs(apps, schema_editor):
"""
Replace the `device_role` column in DeviceTable configs with `role`.
"""
UserConfig = apps.get_model('users', 'UserConfig')
for table in ('DeviceTable', 'DeviceBayTable'):
for config in UserConfig.objects.filter(**{f'data__tables__{table}__columns__contains': 'device_role'}):
config.data['tables'][table]['columns'] = [
'role' if x == 'device_role' else x
for x in config.data['tables'][table]['columns']
]
config.save()
class Migration(migrations.Migration):
dependencies = [
('dcim', '0180_powerfeed_tenant'),
]
operations = [
migrations.RenameField(
model_name='device',
old_name='device_role',
new_name='role',
),
migrations.RunPython(
code=update_table_configs,
reverse_code=migrations.RunPython.noop
),
]

View File

@ -537,7 +537,7 @@ class Device(PrimaryModel, ConfigContextModel, TrackingModelMixin):
on_delete=models.PROTECT,
related_name='instances'
)
device_role = models.ForeignKey(
role = models.ForeignKey(
to='dcim.DeviceRole',
on_delete=models.PROTECT,
related_name='devices',
@ -758,7 +758,7 @@ class Device(PrimaryModel, ConfigContextModel, TrackingModelMixin):
objects = ConfigContextModelQuerySet.as_manager()
clone_fields = (
'device_type', 'device_role', 'tenant', 'platform', 'site', 'location', 'rack', 'face', 'status', 'airflow',
'device_type', 'role', 'tenant', 'platform', 'site', 'location', 'rack', 'face', 'status', 'airflow',
'cluster', 'virtual_chassis',
)
prerequisite_models = (
@ -808,6 +808,20 @@ class Device(PrimaryModel, ConfigContextModel, TrackingModelMixin):
def get_absolute_url(self):
return reverse('dcim:device', args=[self.pk])
@property
def device_role(self):
"""
For backwards compatibility with pre-v3.6 code expecting a device_role to be present on Device.
"""
return self.role
@device_role.setter
def device_role(self, value):
"""
For backwards compatibility with pre-v3.6 code expecting a device_role to be present on Device.
"""
self.role = value
def clean(self):
super().clean()
@ -1063,8 +1077,8 @@ class Device(PrimaryModel, ConfigContextModel, TrackingModelMixin):
"""
if self.config_template:
return self.config_template
if self.device_role.config_template:
return self.device_role.config_template
if self.role.config_template:
return self.role.config_template
if self.platform and self.platform.config_template:
return self.platform.config_template

View File

@ -323,7 +323,7 @@ class Rack(PrimaryModel, WeightMixin):
devices = Device.objects.prefetch_related(
'device_type',
'device_type__manufacturer',
'device_role'
'role'
).annotate(
devicebay_count=Count('devicebays')
).exclude(

View File

@ -167,9 +167,9 @@ class CableTraceSVG:
if hasattr(instance, 'parent_object'):
# Termination
return getattr(instance, 'color', 'f0f0f0') or 'f0f0f0'
if hasattr(instance, 'device_role'):
if hasattr(instance, 'role'):
# Device
return instance.device_role.color
return instance.role.color
else:
# Other parent object
return 'e0e0e0'

View File

@ -46,14 +46,14 @@ def get_device_description(device):
Return a description for a device to be rendered in the rack elevation in the following format
Name: <name>
Role: <device_role>
Role: <role>
Device Type: <manufacturer> <model> (<u_height>)
Asset tag: <asset_tag> (if defined)
Serial: <serial> (if defined)
Description: <description> (if defined)
"""
description = f'Name: {device.name}'
description += f'\nRole: {device.device_role}'
description += f'\nRole: {device.role}'
u_height = f'{floatformat(device.device_type.u_height)}U'
description += f'\nDevice Type: {device.device_type.manufacturer.name} {device.device_type.model} ({u_height})'
if device.asset_tag:
@ -205,7 +205,7 @@ class RackElevationSVG:
"""
Draw the front (mounted) face of a device.
"""
color = device.device_role.color
color = device.role.color
image = device.device_type.front_image
self._draw_device(device, coords, size, color=color, image=image)

View File

@ -190,7 +190,7 @@ class DeviceTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable):
verbose_name=_('Position'),
template_code='{{ value|floatformat }}'
)
device_role = columns.ColoredLabelColumn(
role = columns.ColoredLabelColumn(
verbose_name=_('Role')
)
manufacturer = tables.Column(
@ -285,14 +285,14 @@ class DeviceTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable):
class Meta(NetBoxTable.Meta):
model = models.Device
fields = (
'pk', 'id', 'name', 'status', 'tenant', 'tenant_group', 'device_role', 'manufacturer', 'device_type',
'pk', 'id', 'name', 'status', 'tenant', 'tenant_group', 'role', 'manufacturer', 'device_type',
'platform', 'serial', 'asset_tag', 'region', 'site_group', 'site', 'location', 'rack', 'parent_device',
'device_bay_position', 'position', 'face', 'latitude', 'longitude', 'airflow', 'primary_ip', 'primary_ip4',
'primary_ip6', 'oob_ip', 'cluster', 'virtual_chassis', 'vc_position', 'vc_priority', 'description',
'config_template', 'comments', 'contacts', 'tags', 'created', 'last_updated',
)
default_columns = (
'pk', 'name', 'status', 'tenant', 'site', 'location', 'rack', 'device_role', 'manufacturer', 'device_type',
'pk', 'name', 'status', 'tenant', 'site', 'location', 'rack', 'role', 'manufacturer', 'device_type',
'primary_ip',
)
@ -314,7 +314,7 @@ class DeviceImportTable(TenancyColumnsMixin, NetBoxTable):
verbose_name=_('Rack'),
linkify=True
)
device_role = tables.Column(
role = tables.Column(
verbose_name=_('Role')
)
device_type = tables.Column(
@ -323,7 +323,7 @@ class DeviceImportTable(TenancyColumnsMixin, NetBoxTable):
class Meta(NetBoxTable.Meta):
model = models.Device
fields = ('id', 'name', 'status', 'tenant', 'tenant_group', 'site', 'rack', 'position', 'device_role', 'device_type')
fields = ('id', 'name', 'status', 'tenant', 'tenant_group', 'site', 'rack', 'position', 'role', 'device_type')
empty_text = False
@ -822,8 +822,8 @@ class DeviceBayTable(DeviceComponentTable):
'args': [Accessor('device_id')],
}
)
device_role = columns.ColoredLabelColumn(
accessor=Accessor('installed_device__device_role'),
role = columns.ColoredLabelColumn(
accessor=Accessor('installed_device__role'),
verbose_name=_('Role')
)
device_type = tables.Column(
@ -847,8 +847,8 @@ class DeviceBayTable(DeviceComponentTable):
class Meta(DeviceComponentTable.Meta):
model = models.DeviceBay
fields = (
'pk', 'id', 'name', 'device', 'label', 'status', 'device_role', 'device_type', 'installed_device', 'description', 'tags',
'created', 'last_updated',
'pk', 'id', 'name', 'device', 'label', 'status', 'role', 'device_type', 'installed_device', 'description',
'tags', 'created', 'last_updated',
)
default_columns = ('pk', 'name', 'device', 'label', 'status', 'installed_device', 'description')

View File

@ -40,7 +40,7 @@ class Mixins:
peer_device = Device.objects.create(
site=Site.objects.first(),
device_type=DeviceType.objects.first(),
device_role=DeviceRole.objects.first(),
role=DeviceRole.objects.first(),
name='Peer Device'
)
if self.peer_termination_type is None:
@ -1052,12 +1052,12 @@ class DeviceRoleTest(APIViewTestCases.APIViewTestCase):
@classmethod
def setUpTestData(cls):
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1', color='ff0000'),
DeviceRole(name='Device Role 2', slug='device-role-2', color='00ff00'),
DeviceRole(name='Device Role 3', slug='device-role-3', color='0000ff'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
class PlatformTest(APIViewTestCases.APIViewTestCase):
@ -1122,11 +1122,11 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
)
DeviceType.objects.bulk_create(device_types)
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1', color='ff0000'),
DeviceRole(name='Device Role 2', slug='device-role-2', color='00ff00'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
cluster_type = ClusterType.objects.create(name='Cluster Type 1', slug='cluster-type-1')
@ -1139,7 +1139,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
devices = (
Device(
device_type=device_types[0],
device_role=device_roles[0],
role=roles[0],
name='Device 1',
site=sites[0],
rack=racks[0],
@ -1148,7 +1148,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
),
Device(
device_type=device_types[0],
device_role=device_roles[0],
role=roles[0],
name='Device 2',
site=sites[0],
rack=racks[0],
@ -1157,7 +1157,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
),
Device(
device_type=device_types[0],
device_role=device_roles[0],
role=roles[0],
name='Device 3',
site=sites[0],
rack=racks[0],
@ -1170,7 +1170,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
cls.create_data = [
{
'device_type': device_types[1].pk,
'device_role': device_roles[1].pk,
'role': roles[1].pk,
'name': 'Test Device 4',
'site': sites[1].pk,
'rack': racks[1].pk,
@ -1178,7 +1178,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
},
{
'device_type': device_types[1].pk,
'device_role': device_roles[1].pk,
'role': roles[1].pk,
'name': 'Test Device 5',
'site': sites[1].pk,
'rack': racks[1].pk,
@ -1186,7 +1186,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
},
{
'device_type': device_types[1].pk,
'device_role': device_roles[1].pk,
'role': roles[1].pk,
'name': 'Test Device 6',
'site': sites[1].pk,
'rack': racks[1].pk,
@ -1221,7 +1221,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
device = Device.objects.first()
data = {
'device_type': device.device_type.pk,
'device_role': device.device_role.pk,
'role': device.role.pk,
'site': device.site.pk,
'name': device.name,
}
@ -1241,7 +1241,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
data = [
{
'device_type': device_type.pk,
'device_role': device.device_role.pk,
'role': device.role.pk,
'site': device.site.pk,
'name': 'Test Device 7',
'rack': device.rack.pk,
@ -1250,7 +1250,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
},
{
'device_type': device_type.pk,
'device_role': device.device_role.pk,
'role': device.role.pk,
'site': device.site.pk,
'name': 'Test Device 8',
'rack': device.rack.pk,
@ -1343,8 +1343,8 @@ class ConsolePortTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIViewTestCa
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
site = Site.objects.create(name='Site 1', slug='site-1')
devicerole = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
role = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
console_ports = (
ConsolePort(device=device, name='Console Port 1'),
@ -1385,8 +1385,8 @@ class ConsoleServerPortTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIView
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
site = Site.objects.create(name='Site 1', slug='site-1')
devicerole = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
role = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
console_server_ports = (
ConsoleServerPort(device=device, name='Console Server Port 1'),
@ -1427,8 +1427,8 @@ class PowerPortTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIViewTestCase
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
site = Site.objects.create(name='Site 1', slug='site-1')
devicerole = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
role = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
power_ports = (
PowerPort(device=device, name='Power Port 1'),
@ -1466,8 +1466,8 @@ class PowerOutletTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIViewTestCa
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
site = Site.objects.create(name='Site 1', slug='site-1')
devicerole = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
role = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
power_ports = (
PowerPort(device=device, name='Power Port 1'),
@ -1514,8 +1514,8 @@ class InterfaceTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIViewTestCase
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
site = Site.objects.create(name='Site 1', slug='site-1')
devicerole = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
role = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
interfaces = (
Interface(device=device, name='Interface 1', type='1000base-t'),
@ -1621,8 +1621,8 @@ class FrontPortTest(APIViewTestCases.APIViewTestCase):
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
site = Site.objects.create(name='Site 1', slug='site-1')
devicerole = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
role = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
rear_ports = (
RearPort(device=device, name='Rear Port 1', type=PortTypeChoices.TYPE_8P8C),
@ -1679,8 +1679,8 @@ class RearPortTest(APIViewTestCases.APIViewTestCase):
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
site = Site.objects.create(name='Site 1', slug='site-1')
devicerole = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
role = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
rear_ports = (
RearPort(device=device, name='Rear Port 1', type=PortTypeChoices.TYPE_8P8C),
@ -1719,10 +1719,10 @@ class ModuleBayTest(APIViewTestCases.APIViewTestCase):
def setUpTestData(cls):
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
site = Site.objects.create(name='Site 1', slug='site-1')
devicerole = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
role = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
device = Device.objects.create(device_type=device_type, device_role=devicerole, name='Device 1', site=site)
device = Device.objects.create(device_type=device_type, role=role, name='Device 1', site=site)
device_bays = (
ModuleBay(device=device, name='Device Bay 1'),
@ -1758,7 +1758,7 @@ class DeviceBayTest(APIViewTestCases.APIViewTestCase):
def setUpTestData(cls):
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
site = Site.objects.create(name='Site 1', slug='site-1')
devicerole = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
role = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device_types = (
DeviceType(
@ -1777,10 +1777,10 @@ class DeviceBayTest(APIViewTestCases.APIViewTestCase):
DeviceType.objects.bulk_create(device_types)
devices = (
Device(device_type=device_types[0], device_role=devicerole, name='Device 1', site=site),
Device(device_type=device_types[1], device_role=devicerole, name='Device 2', site=site),
Device(device_type=device_types[1], device_role=devicerole, name='Device 3', site=site),
Device(device_type=device_types[1], device_role=devicerole, name='Device 4', site=site),
Device(device_type=device_types[0], role=role, name='Device 1', site=site),
Device(device_type=device_types[1], role=role, name='Device 2', site=site),
Device(device_type=device_types[1], role=role, name='Device 3', site=site),
Device(device_type=device_types[1], role=role, name='Device 4', site=site),
)
Device.objects.bulk_create(devices)
@ -1822,8 +1822,8 @@ class InventoryItemTest(APIViewTestCases.APIViewTestCase):
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
site = Site.objects.create(name='Site 1', slug='site-1')
devicerole = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
role = DeviceRole.objects.create(name='Test Device Role 1', slug='test-device-role-1', color='ff0000')
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
roles = (
InventoryItemRole(name='Inventory Item Role 1', slug='inventory-item-role-1'),
@ -1932,11 +1932,11 @@ class CableTest(APIViewTestCases.APIViewTestCase):
site = Site.objects.create(name='Site 1', slug='site-1')
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
devicerole = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1', color='ff0000')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1', color='ff0000')
devices = (
Device(device_type=devicetype, device_role=devicerole, name='Device 1', site=site),
Device(device_type=devicetype, device_role=devicerole, name='Device 2', site=site),
Device(device_type=devicetype, role=role, name='Device 1', site=site),
Device(device_type=devicetype, role=role, name='Device 2', site=site),
)
Device.objects.bulk_create(devices)
@ -1998,10 +1998,10 @@ class ConnectedDeviceTest(APITestCase):
site = Site.objects.create(name='Site 1', slug='site-1')
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
devicerole = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1', color='ff0000')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1', color='ff0000')
devices = (
Device(device_type=devicetype, device_role=devicerole, name='TestDevice1', site=site),
Device(device_type=devicetype, device_role=devicerole, name='TestDevice2', site=site),
Device(device_type=devicetype, role=role, name='TestDevice1', site=site),
Device(device_type=devicetype, role=role, name='TestDevice2', site=site),
)
Device.objects.bulk_create(devices)
interfaces = (
@ -2037,21 +2037,21 @@ class VirtualChassisTest(APIViewTestCases.APIViewTestCase):
site = Site.objects.create(name='Test Site', slug='test-site')
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type', slug='device-type')
devicerole = DeviceRole.objects.create(name='Device Role', slug='device-role', color='ff0000')
role = DeviceRole.objects.create(name='Device Role', slug='device-role', color='ff0000')
devices = (
Device(name='Device 1', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 2', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 3', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 4', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 5', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 6', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 7', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 8', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 9', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 10', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 11', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 12', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 1', device_type=devicetype, role=role, site=site),
Device(name='Device 2', device_type=devicetype, role=role, site=site),
Device(name='Device 3', device_type=devicetype, role=role, site=site),
Device(name='Device 4', device_type=devicetype, role=role, site=site),
Device(name='Device 5', device_type=devicetype, role=role, site=site),
Device(name='Device 6', device_type=devicetype, role=role, site=site),
Device(name='Device 7', device_type=devicetype, role=role, site=site),
Device(name='Device 8', device_type=devicetype, role=role, site=site),
Device(name='Device 9', device_type=devicetype, role=role, site=site),
Device(name='Device 10', device_type=devicetype, role=role, site=site),
Device(name='Device 11', device_type=devicetype, role=role, site=site),
Device(name='Device 12', device_type=devicetype, role=role, site=site),
)
Device.objects.bulk_create(devices)
@ -2225,12 +2225,12 @@ class VirtualDeviceContextTest(APIViewTestCases.APIViewTestCase):
site = Site.objects.create(name='Test Site', slug='test-site')
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type', slug='device-type')
devicerole = DeviceRole.objects.create(name='Device Role', slug='device-role', color='ff0000')
role = DeviceRole.objects.create(name='Device Role', slug='device-role', color='ff0000')
devices = (
Device(name='Device 1', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 2', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 3', device_type=devicetype, device_role=devicerole, site=site),
Device(name='Device 1', device_type=devicetype, role=role, site=site),
Device(name='Device 2', device_type=devicetype, role=role, site=site),
Device(name='Device 3', device_type=devicetype, role=role, site=site),
)
Device.objects.bulk_create(devices)

View File

@ -24,8 +24,8 @@ class CablePathTestCase(TestCase):
manufacturer = Manufacturer.objects.create(name='Generic', slug='generic')
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Test Device')
device_role = DeviceRole.objects.create(name='Device Role', slug='device-role')
cls.device = Device.objects.create(site=cls.site, device_type=device_type, device_role=device_role, name='Test Device')
role = DeviceRole.objects.create(name='Device Role', slug='device-role')
cls.device = Device.objects.create(site=cls.site, device_type=device_type, role=role, name='Test Device')
cls.powerpanel = PowerPanel.objects.create(site=cls.site, name='Power Panel')

View File

@ -24,11 +24,11 @@ class DeviceComponentFilterSetTests:
params = {'device_type': [device_types[0].model, device_types[1].model]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_device_role(self):
device_role = DeviceRole.objects.all()[:2]
params = {'device_role_id': [device_role[0].pk, device_role[1].pk]}
def test_role(self):
role = DeviceRole.objects.all()[:2]
params = {'role_id': [role[0].pk, role[1].pk]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
params = {'device_role': [device_role[0].slug, device_role[1].slug]}
params = {'role': [role[0].slug, role[1].slug]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
@ -1473,12 +1473,12 @@ class DeviceRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
@classmethod
def setUpTestData(cls):
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1', color='ff0000', vm_role=True, description='foobar1'),
DeviceRole(name='Device Role 2', slug='device-role-2', color='00ff00', vm_role=True, description='foobar2'),
DeviceRole(name='Device Role 3', slug='device-role-3', color='0000ff', vm_role=False),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
def test_name(self):
params = {'name': ['Device Role 1', 'Device Role 2']}
@ -1565,12 +1565,12 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
)
DeviceType.objects.bulk_create(device_types)
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
platforms = (
Platform(name='Platform 1', slug='platform-1'),
@ -1641,9 +1641,9 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
Tenant.objects.bulk_create(tenants)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], platform=platforms[0], tenant=tenants[0], serial='ABC', asset_tag='1001', site=sites[0], location=locations[0], rack=racks[0], position=1, face=DeviceFaceChoices.FACE_FRONT, latitude=10, longitude=10, status=DeviceStatusChoices.STATUS_ACTIVE, cluster=clusters[0], local_context_data={"foo": 123}),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], platform=platforms[1], tenant=tenants[1], serial='DEF', asset_tag='1002', site=sites[1], location=locations[1], rack=racks[1], position=2, face=DeviceFaceChoices.FACE_FRONT, latitude=20, longitude=20, status=DeviceStatusChoices.STATUS_STAGED, airflow=DeviceAirflowChoices.AIRFLOW_FRONT_TO_REAR, cluster=clusters[1]),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], platform=platforms[2], tenant=tenants[2], serial='GHI', asset_tag='1003', site=sites[2], location=locations[2], rack=racks[2], position=3, face=DeviceFaceChoices.FACE_REAR, latitude=30, longitude=30, status=DeviceStatusChoices.STATUS_FAILED, airflow=DeviceAirflowChoices.AIRFLOW_REAR_TO_FRONT, cluster=clusters[2]),
Device(name='Device 1', device_type=device_types[0], role=roles[0], platform=platforms[0], tenant=tenants[0], serial='ABC', asset_tag='1001', site=sites[0], location=locations[0], rack=racks[0], position=1, face=DeviceFaceChoices.FACE_FRONT, latitude=10, longitude=10, status=DeviceStatusChoices.STATUS_ACTIVE, cluster=clusters[0], local_context_data={"foo": 123}),
Device(name='Device 2', device_type=device_types[1], role=roles[1], platform=platforms[1], tenant=tenants[1], serial='DEF', asset_tag='1002', site=sites[1], location=locations[1], rack=racks[1], position=2, face=DeviceFaceChoices.FACE_FRONT, latitude=20, longitude=20, status=DeviceStatusChoices.STATUS_STAGED, airflow=DeviceAirflowChoices.AIRFLOW_FRONT_TO_REAR, cluster=clusters[1]),
Device(name='Device 3', device_type=device_types[2], role=roles[2], platform=platforms[2], tenant=tenants[2], serial='GHI', asset_tag='1003', site=sites[2], location=locations[2], rack=racks[2], position=3, face=DeviceFaceChoices.FACE_REAR, latitude=30, longitude=30, status=DeviceStatusChoices.STATUS_FAILED, airflow=DeviceAirflowChoices.AIRFLOW_REAR_TO_FRONT, cluster=clusters[2]),
)
Device.objects.bulk_create(devices)
@ -1755,10 +1755,10 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_devicerole(self):
device_roles = DeviceRole.objects.all()[:2]
params = {'role_id': [device_roles[0].pk, device_roles[1].pk]}
roles = DeviceRole.objects.all()[:2]
params = {'role_id': [roles[0].pk, roles[1].pk]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
params = {'role': [device_roles[0].slug, device_roles[1].slug]}
params = {'role': [roles[0].slug, roles[1].slug]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_platform(self):
@ -2062,12 +2062,12 @@ class ConsolePortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedF
module_type = ModuleType.objects.create(manufacturer=manufacturer, model='Module Type 1')
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
locations = (
Location(name='Location 1', slug='location-1', site=sites[0]),
@ -2085,10 +2085,10 @@ class ConsolePortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedF
Rack.objects.bulk_create(racks)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[0], device_role=device_roles[0], site=sites[3]), # For cable connections
Device(name='Device 1', device_type=device_types[0], role=roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], role=roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], role=roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[0], role=roles[0], site=sites[3]), # For cable connections
)
Device.objects.bulk_create(devices)
@ -2242,12 +2242,12 @@ class ConsoleServerPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeL
module_type = ModuleType.objects.create(manufacturer=manufacturer, model='Module Type 1')
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
locations = (
Location(name='Location 1', slug='location-1', site=sites[0]),
@ -2265,10 +2265,10 @@ class ConsoleServerPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeL
Rack.objects.bulk_create(racks)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], device_role=device_roles[2], site=sites[3]), # For cable connections
Device(name='Device 1', device_type=device_types[0], role=roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], role=roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], role=roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
)
Device.objects.bulk_create(devices)
@ -2422,12 +2422,12 @@ class PowerPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
module_type = ModuleType.objects.create(manufacturer=manufacturer, model='Module Type 1')
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
locations = (
Location(name='Location 1', slug='location-1', site=sites[0]),
@ -2445,10 +2445,10 @@ class PowerPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
Rack.objects.bulk_create(racks)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], device_role=device_roles[2], site=sites[3]), # For cable connections
Device(name='Device 1', device_type=device_types[0], role=roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], role=roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], role=roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
)
Device.objects.bulk_create(devices)
@ -2610,12 +2610,12 @@ class PowerOutletTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedF
module_type = ModuleType.objects.create(manufacturer=manufacturer, model='Module Type 1')
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
locations = (
Location(name='Location 1', slug='location-1', site=sites[0]),
@ -2633,10 +2633,10 @@ class PowerOutletTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedF
Rack.objects.bulk_create(racks)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], device_role=device_roles[2], site=sites[3]), # For cable connections
Device(name='Device 1', device_type=device_types[0], role=roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], role=roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], role=roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
)
Device.objects.bulk_create(devices)
@ -2794,12 +2794,12 @@ class InterfaceTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
module_type = ModuleType.objects.create(manufacturer=manufacturer, model='Module Type 1')
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
locations = (
Location(name='Location 1', slug='location-1', site=sites[0]),
@ -2817,10 +2817,10 @@ class InterfaceTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
Rack.objects.bulk_create(racks)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], device_role=device_roles[2], site=sites[3]), # For cable connections
Device(name='Device 1', device_type=device_types[0], role=roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], role=roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], role=roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
)
Device.objects.bulk_create(devices)
@ -3230,12 +3230,12 @@ class FrontPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
module_type = ModuleType.objects.create(manufacturer=manufacturer, model='Module Type 1')
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
locations = (
Location(name='Location 1', slug='location-1', site=sites[0]),
@ -3253,10 +3253,10 @@ class FrontPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
Rack.objects.bulk_create(racks)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], device_role=device_roles[2], site=sites[3]), # For cable connections
Device(name='Device 1', device_type=device_types[0], role=roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], role=roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], role=roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
)
Device.objects.bulk_create(devices)
@ -3419,12 +3419,12 @@ class RearPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilt
module_type = ModuleType.objects.create(manufacturer=manufacturer, model='Module Type 1')
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
locations = (
Location(name='Location 1', slug='location-1', site=sites[0]),
@ -3442,10 +3442,10 @@ class RearPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilt
Rack.objects.bulk_create(racks)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], device_role=device_roles[2], site=sites[3]), # For cable connections
Device(name='Device 1', device_type=device_types[0], role=roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], role=roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], role=roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
)
Device.objects.bulk_create(devices)
@ -3600,12 +3600,12 @@ class ModuleBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
)
DeviceType.objects.bulk_create(device_types)
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
locations = (
Location(name='Location 1', slug='location-1', site=sites[0]),
@ -3623,9 +3623,9 @@ class ModuleBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
Rack.objects.bulk_create(racks)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name='Device 1', device_type=device_types[0], role=roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], role=roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], role=roles[2], site=sites[2], location=locations[2], rack=racks[2]),
)
Device.objects.bulk_create(devices)
@ -3729,12 +3729,12 @@ class DeviceBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
)
DeviceType.objects.bulk_create(device_types)
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
locations = (
Location(name='Location 1', slug='location-1', site=sites[0]),
@ -3752,9 +3752,9 @@ class DeviceBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
Rack.objects.bulk_create(racks)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name='Device 1', device_type=device_types[0], role=roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], role=roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], role=roles[2], site=sites[2], location=locations[2], rack=racks[2]),
)
Device.objects.bulk_create(devices)
@ -3840,12 +3840,12 @@ class InventoryItemTestCase(TestCase, ChangeLoggedFilterSetTests):
)
DeviceType.objects.bulk_create(device_types)
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
regions = (
Region(name='Region 1', slug='region-1'),
@ -3886,9 +3886,9 @@ class InventoryItemTestCase(TestCase, ChangeLoggedFilterSetTests):
Rack.objects.bulk_create(racks)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
Device(name='Device 1', device_type=device_types[0], role=roles[0], site=sites[0], location=locations[0], rack=racks[0]),
Device(name='Device 2', device_type=device_types[1], role=roles[1], site=sites[1], location=locations[1], rack=racks[1]),
Device(name='Device 3', device_type=device_types[2], role=roles[2], site=sites[2], location=locations[2], rack=racks[2]),
)
Device.objects.bulk_create(devices)
@ -3986,11 +3986,11 @@ class InventoryItemTestCase(TestCase, ChangeLoggedFilterSetTests):
params = {'device_type': [device_types[0].model, device_types[1].model]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
def test_device_role(self):
device_role = DeviceRole.objects.all()[:2]
params = {'device_role_id': [device_role[0].pk, device_role[1].pk]}
def test_role(self):
role = DeviceRole.objects.all()[:2]
params = {'role_id': [role[0].pk, role[1].pk]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
params = {'device_role': [device_role[0].slug, device_role[1].slug]}
params = {'role': [role[0].slug, role[1].slug]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
def test_device(self):
@ -4066,7 +4066,7 @@ class VirtualChassisTestCase(TestCase, ChangeLoggedFilterSetTests):
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Model 1', slug='model-1')
device_role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
regions = (
Region(name='Region 1', slug='region-1'),
@ -4092,12 +4092,12 @@ class VirtualChassisTestCase(TestCase, ChangeLoggedFilterSetTests):
Site.objects.bulk_create(sites)
devices = (
Device(name='Device 1', device_type=device_type, device_role=device_role, site=sites[0], vc_position=1),
Device(name='Device 2', device_type=device_type, device_role=device_role, site=sites[0], vc_position=2),
Device(name='Device 3', device_type=device_type, device_role=device_role, site=sites[1], vc_position=1),
Device(name='Device 4', device_type=device_type, device_role=device_role, site=sites[1], vc_position=2),
Device(name='Device 5', device_type=device_type, device_role=device_role, site=sites[2], vc_position=1),
Device(name='Device 6', device_type=device_type, device_role=device_role, site=sites[2], vc_position=2),
Device(name='Device 1', device_type=device_type, role=role, site=sites[0], vc_position=1),
Device(name='Device 2', device_type=device_type, role=role, site=sites[0], vc_position=2),
Device(name='Device 3', device_type=device_type, role=role, site=sites[1], vc_position=1),
Device(name='Device 4', device_type=device_type, role=role, site=sites[1], vc_position=2),
Device(name='Device 5', device_type=device_type, role=role, site=sites[2], vc_position=1),
Device(name='Device 6', device_type=device_type, role=role, site=sites[2], vc_position=2),
)
Device.objects.bulk_create(devices)
@ -4187,15 +4187,15 @@ class CableTestCase(TestCase, ChangeLoggedFilterSetTests):
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Model 1', slug='model-1')
device_role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
devices = (
Device(name='Device 1', device_type=device_type, device_role=device_role, site=sites[0], rack=racks[0], location=locations[0], position=1),
Device(name='Device 2', device_type=device_type, device_role=device_role, site=sites[0], rack=racks[0], location=locations[0], position=2),
Device(name='Device 3', device_type=device_type, device_role=device_role, site=sites[1], rack=racks[1], location=locations[1], position=1),
Device(name='Device 4', device_type=device_type, device_role=device_role, site=sites[1], rack=racks[1], location=locations[1], position=2),
Device(name='Device 5', device_type=device_type, device_role=device_role, site=sites[2], rack=racks[2], location=locations[2], position=1),
Device(name='Device 6', device_type=device_type, device_role=device_role, site=sites[2], rack=racks[2], location=locations[2], position=2),
Device(name='Device 1', device_type=device_type, role=role, site=sites[0], rack=racks[0], location=locations[0], position=1),
Device(name='Device 2', device_type=device_type, role=role, site=sites[0], rack=racks[0], location=locations[0], position=2),
Device(name='Device 3', device_type=device_type, role=role, site=sites[1], rack=racks[1], location=locations[1], position=1),
Device(name='Device 4', device_type=device_type, role=role, site=sites[1], rack=racks[1], location=locations[1], position=2),
Device(name='Device 5', device_type=device_type, role=role, site=sites[2], rack=racks[2], location=locations[2], position=1),
Device(name='Device 6', device_type=device_type, role=role, site=sites[2], rack=racks[2], location=locations[2], position=2),
)
Device.objects.bulk_create(devices)
@ -4485,8 +4485,8 @@ class PowerFeedTestCase(TestCase, ChangeLoggedFilterSetTests):
manufacturer = Manufacturer.objects.create(name='Manufacturer', slug='manufacturer')
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Model', slug='model')
device_role = DeviceRole.objects.create(name='Device Role', slug='device-role')
device = Device.objects.create(name='Device', device_type=device_type, device_role=device_role, site=sites[0])
role = DeviceRole.objects.create(name='Device Role', slug='device-role')
device = Device.objects.create(name='Device', device_type=device_type, role=role, site=sites[0])
power_ports = [
PowerPort(device=device, name='Power Port 1'),
PowerPort(device=device, name='Power Port 2'),
@ -4608,12 +4608,12 @@ class VirtualDeviceContextTestCase(TestCase, ChangeLoggedFilterSetTests):
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Model 1', slug='model-1')
device_role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
devices = (
Device(name='Device 1', device_type=device_type, device_role=device_role, site=sites[0]),
Device(name='Device 2', device_type=device_type, device_role=device_role, site=sites[1]),
Device(name='Device 3', device_type=device_type, device_role=device_role, site=sites[2]),
Device(name='Device 1', device_type=device_type, role=role, site=sites[0]),
Device(name='Device 2', device_type=device_type, role=role, site=sites[1]),
Device(name='Device 3', device_type=device_type, role=role, site=sites[2]),
)
Device.objects.bulk_create(devices)

View File

@ -22,12 +22,12 @@ class DeviceTestCase(TestCase):
device_type = DeviceType.objects.create(
manufacturer=manufacturer, model='Device Type 1', slug='device-type-1', u_height=1
)
device_role = DeviceRole.objects.create(
role = DeviceRole.objects.create(
name='Device Role 1', slug='device-role-1', color='ff0000'
)
Platform.objects.create(name='Platform 1', slug='platform-1')
Device.objects.create(
name='Device 1', device_type=device_type, device_role=device_role, site=site, rack=rack, position=1
name='Device 1', device_type=device_type, role=role, site=site, rack=rack, position=1
)
cluster_type = ClusterType.objects.create(name='Cluster Type 1', slug='cluster-type-1')
cluster_group = ClusterGroup.objects.create(name='Cluster Group 1', slug='cluster-group-1')
@ -36,7 +36,7 @@ class DeviceTestCase(TestCase):
def test_racked_device(self):
form = DeviceForm(data={
'name': 'New Device',
'device_role': DeviceRole.objects.first().pk,
'role': DeviceRole.objects.first().pk,
'tenant': None,
'manufacturer': Manufacturer.objects.first().pk,
'device_type': DeviceType.objects.first().pk,
@ -53,7 +53,7 @@ class DeviceTestCase(TestCase):
def test_racked_device_occupied(self):
form = DeviceForm(data={
'name': 'test',
'device_role': DeviceRole.objects.first().pk,
'role': DeviceRole.objects.first().pk,
'tenant': None,
'manufacturer': Manufacturer.objects.first().pk,
'device_type': DeviceType.objects.first().pk,
@ -70,7 +70,7 @@ class DeviceTestCase(TestCase):
def test_non_racked_device(self):
form = DeviceForm(data={
'name': 'New Device',
'device_role': DeviceRole.objects.first().pk,
'role': DeviceRole.objects.first().pk,
'tenant': None,
'manufacturer': Manufacturer.objects.first().pk,
'device_type': DeviceType.objects.first().pk,
@ -87,7 +87,7 @@ class DeviceTestCase(TestCase):
def test_non_racked_device_with_face(self):
form = DeviceForm(data={
'name': 'New Device',
'device_role': DeviceRole.objects.first().pk,
'role': DeviceRole.objects.first().pk,
'tenant': None,
'manufacturer': Manufacturer.objects.first().pk,
'device_type': DeviceType.objects.first().pk,
@ -103,7 +103,7 @@ class DeviceTestCase(TestCase):
def test_non_racked_device_with_position(self):
form = DeviceForm(data={
'name': 'New Device',
'device_role': DeviceRole.objects.first().pk,
'role': DeviceRole.objects.first().pk,
'tenant': None,
'manufacturer': Manufacturer.objects.first().pk,
'device_type': DeviceType.objects.first().pk,

View File

@ -25,7 +25,7 @@ class LocationTestCase(TestCase):
device_type = DeviceType.objects.create(
manufacturer=manufacturer, model='Device Type 1', slug='device-type-1'
)
device_role = DeviceRole.objects.create(
role = DeviceRole.objects.create(
name='Device Role 1', slug='device-role-1', color='ff0000'
)
@ -45,14 +45,14 @@ class LocationTestCase(TestCase):
location=location_a1,
name='Device 1',
device_type=device_type,
device_role=device_role
role=role
)
device2 = Device.objects.create(
site=site_a,
location=location_a2,
name='Device 2',
device_type=device_type,
device_role=device_role
role=role
)
powerpanel1 = PowerPanel.objects.create(site=site_a, location=location_a1, name='Power Panel 1')
@ -114,7 +114,7 @@ class RackTestCase(TestCase):
device1 = Device(
name='Device 1',
device_type=DeviceType.objects.first(),
device_role=DeviceRole.objects.first(),
role=DeviceRole.objects.first(),
site=site,
rack=rack,
position=43,
@ -147,7 +147,7 @@ class RackTestCase(TestCase):
device1 = Device(
name='TestSwitch1',
device_type=DeviceType.objects.first(),
device_role=DeviceRole.objects.first(),
role=DeviceRole.objects.first(),
site=site,
rack=rack,
position=10.0,
@ -189,7 +189,7 @@ class RackTestCase(TestCase):
Device(
name='Device 1',
device_role=DeviceRole.objects.first(),
role=DeviceRole.objects.first(),
device_type=DeviceType.objects.first(),
site=site,
rack=rack
@ -202,7 +202,7 @@ class RackTestCase(TestCase):
rack = Rack.objects.first()
attrs = {
'device_type': DeviceType.objects.get(u_height=0.5),
'device_role': DeviceRole.objects.first(),
'role': DeviceRole.objects.first(),
'site': Site.objects.first(),
'rack': rack,
'face': DeviceFaceChoices.FACE_FRONT,
@ -228,7 +228,7 @@ class RackTestCase(TestCase):
site=site_a,
rack=rack1,
device_type=DeviceType.objects.first(),
device_role=DeviceRole.objects.first()
role=DeviceRole.objects.first()
)
# Move Rack1 to Site B
@ -244,14 +244,16 @@ class DeviceTestCase(TestCase):
@classmethod
def setUpTestData(cls):
site = Site.objects.create(name='Test Site 1', slug='test-site-1')
Site.objects.create(name='Test Site 1', slug='test-site-1')
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
device_type = DeviceType.objects.create(
manufacturer=manufacturer, model='Test Device Type 1', slug='test-device-type-1'
)
device_role = DeviceRole.objects.create(
name='Test Device Role 1', slug='test-device-role-1', color='ff0000'
roles = (
DeviceRole(name='Test Role 1', slug='test-role-1'),
DeviceRole(name='Test Role 2', slug='test-role-2'),
)
DeviceRole.objects.bulk_create(roles)
# Create DeviceType components
ConsolePortTemplate(
@ -319,7 +321,7 @@ class DeviceTestCase(TestCase):
d = Device(
site=Site.objects.first(),
device_type=DeviceType.objects.first(),
device_role=DeviceRole.objects.first(),
role=DeviceRole.objects.first(),
name='Test Device 1'
)
d.save()
@ -385,7 +387,7 @@ class DeviceTestCase(TestCase):
device1 = Device(
site=Site.objects.first(),
device_type=DeviceType.objects.first(),
device_role=DeviceRole.objects.first(),
role=DeviceRole.objects.first(),
name=None
)
device1.save()
@ -393,7 +395,7 @@ class DeviceTestCase(TestCase):
device2 = Device(
site=device1.site,
device_type=device1.device_type,
device_role=device1.device_role,
role=device1.role,
name=None
)
device2.full_clean()
@ -406,7 +408,7 @@ class DeviceTestCase(TestCase):
device1 = Device(
site=Site.objects.first(),
device_type=DeviceType.objects.first(),
device_role=DeviceRole.objects.first(),
role=DeviceRole.objects.first(),
name='device 1'
)
device1.save()
@ -414,7 +416,7 @@ class DeviceTestCase(TestCase):
device2 = Device(
site=device1.site,
device_type=device1.device_type,
device_role=device1.device_role,
role=device1.role,
name='DEVICE 1'
)
@ -427,7 +429,7 @@ class DeviceTestCase(TestCase):
device1 = Device(
site=Site.objects.first(),
device_type=DeviceType.objects.first(),
device_role=DeviceRole.objects.first(),
role=DeviceRole.objects.first(),
name='Test Device 1'
)
device1.save()
@ -435,7 +437,7 @@ class DeviceTestCase(TestCase):
device2 = Device(
site=device1.site,
device_type=device1.device_type,
device_role=device1.device_role,
role=device1.role,
name=device1.name
)
@ -458,6 +460,30 @@ class DeviceTestCase(TestCase):
device2.full_clean()
device2.save()
def test_old_device_role_field(self):
"""
Ensure that the old device role field sets the value in the new role field.
"""
# Test getter method
device = Device(
site=Site.objects.first(),
device_type=DeviceType.objects.first(),
role=DeviceRole.objects.first(),
name='Test Device 1',
device_role=DeviceRole.objects.first()
)
device.full_clean()
device.save()
self.assertEqual(device.role, device.device_role)
# Test setter method
device.device_role = DeviceRole.objects.last()
device.full_clean()
device.save()
self.assertEqual(device.role, device.device_role)
class CableTestCase(TestCase):
@ -469,14 +495,14 @@ class CableTestCase(TestCase):
devicetype = DeviceType.objects.create(
manufacturer=manufacturer, model='Test Device Type 1', slug='test-device-type-1'
)
devicerole = DeviceRole.objects.create(
role = DeviceRole.objects.create(
name='Test Device Role 1', slug='test-device-role-1', color='ff0000'
)
device1 = Device.objects.create(
device_type=devicetype, device_role=devicerole, name='TestDevice1', site=site
device_type=devicetype, role=role, name='TestDevice1', site=site
)
device2 = Device.objects.create(
device_type=devicetype, device_role=devicerole, name='TestDevice2', site=site
device_type=devicetype, role=role, name='TestDevice2', site=site
)
interface1 = Interface.objects.create(device=device1, name='eth0')
interface2 = Interface.objects.create(device=device2, name='eth0')
@ -485,7 +511,7 @@ class CableTestCase(TestCase):
power_port1 = PowerPort.objects.create(device=device2, name='psu1')
patch_pannel = Device.objects.create(
device_type=devicetype, device_role=devicerole, name='TestPatchPanel', site=site
device_type=devicetype, role=role, name='TestPatchPanel', site=site
)
rear_port1 = RearPort.objects.create(device=patch_pannel, name='RP1', type='8p8c')
front_port1 = FrontPort.objects.create(
@ -626,11 +652,11 @@ class VirtualDeviceContextTestCase(TestCase):
devicetype = DeviceType.objects.create(
manufacturer=manufacturer, model='Test Device Type 1', slug='test-device-type-1'
)
devicerole = DeviceRole.objects.create(
role = DeviceRole.objects.create(
name='Test Device Role 1', slug='test-device-role-1', color='ff0000'
)
Device.objects.create(
device_type=devicetype, device_role=devicerole, name='TestDevice1', site=site
device_type=devicetype, role=role, name='TestDevice1', site=site
)
def test_vdc_and_interface_creation(self):

View File

@ -13,11 +13,11 @@ class NaturalOrderingTestCase(TestCase):
devicetype = DeviceType.objects.create(
manufacturer=manufacturer, model='Test Device Type 1', slug='test-device-type-1'
)
devicerole = DeviceRole.objects.create(
role = DeviceRole.objects.create(
name='Test Device Role 1', slug='test-device-role-1', color='ff0000'
)
Device.objects.create(
device_type=devicetype, device_role=devicerole, name='Test Device 1', site=site
device_type=devicetype, role=role, name='Test Device 1', site=site
)
def test_interface_ordering_numeric(self):

View File

@ -1554,12 +1554,12 @@ class DeviceRoleTestCase(ViewTestCases.OrganizationalObjectViewTestCase):
@classmethod
def setUpTestData(cls):
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
tags = create_tags('Alpha', 'Bravo', 'Charlie')
@ -1581,9 +1581,9 @@ class DeviceRoleTestCase(ViewTestCases.OrganizationalObjectViewTestCase):
cls.csv_update_data = (
"id,name,description",
f"{device_roles[0].pk},Device Role 7,New description7",
f"{device_roles[1].pk},Device Role 8,New description8",
f"{device_roles[2].pk},Device Role 9,New description9",
f"{roles[0].pk},Device Role 7,New description7",
f"{roles[1].pk},Device Role 8,New description8",
f"{roles[2].pk},Device Role 9,New description9",
)
cls.bulk_edit_data = {
@ -1665,11 +1665,11 @@ class DeviceTestCase(ViewTestCases.PrimaryObjectViewTestCase):
)
DeviceType.objects.bulk_create(devicetypes)
deviceroles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
)
DeviceRole.objects.bulk_create(deviceroles)
DeviceRole.objects.bulk_create(roles)
platforms = (
Platform(name='Platform 1', slug='platform-1'),
@ -1678,9 +1678,9 @@ class DeviceTestCase(ViewTestCases.PrimaryObjectViewTestCase):
Platform.objects.bulk_create(platforms)
devices = (
Device(name='Device 1', site=sites[0], rack=racks[0], device_type=devicetypes[0], device_role=deviceroles[0], platform=platforms[0]),
Device(name='Device 2', site=sites[0], rack=racks[0], device_type=devicetypes[0], device_role=deviceroles[0], platform=platforms[0]),
Device(name='Device 3', site=sites[0], rack=racks[0], device_type=devicetypes[0], device_role=deviceroles[0], platform=platforms[0]),
Device(name='Device 1', site=sites[0], rack=racks[0], device_type=devicetypes[0], role=roles[0], platform=platforms[0]),
Device(name='Device 2', site=sites[0], rack=racks[0], device_type=devicetypes[0], role=roles[0], platform=platforms[0]),
Device(name='Device 3', site=sites[0], rack=racks[0], device_type=devicetypes[0], role=roles[0], platform=platforms[0]),
)
Device.objects.bulk_create(devices)
@ -1690,7 +1690,7 @@ class DeviceTestCase(ViewTestCases.PrimaryObjectViewTestCase):
cls.form_data = {
'device_type': devicetypes[1].pk,
'device_role': deviceroles[1].pk,
'role': roles[1].pk,
'tenant': None,
'platform': platforms[1].pk,
'name': 'Device X',
@ -1715,7 +1715,7 @@ class DeviceTestCase(ViewTestCases.PrimaryObjectViewTestCase):
}
cls.csv_data = (
"device_role,manufacturer,device_type,status,name,site,location,rack,position,face,virtual_chassis,vc_position,vc_priority",
"role,manufacturer,device_type,status,name,site,location,rack,position,face,virtual_chassis,vc_position,vc_priority",
"Device Role 1,Manufacturer 1,Device Type 1,active,Device 4,Site 1,Location 1,Rack 1,10,front,Virtual Chassis 1,1,10",
"Device Role 1,Manufacturer 1,Device Type 1,active,Device 5,Site 1,Location 1,Rack 1,20,front,Virtual Chassis 1,2,20",
"Device Role 1,Manufacturer 1,Device Type 1,active,Device 6,Site 1,Location 1,Rack 1,30,front,Virtual Chassis 1,3,30",
@ -1730,7 +1730,7 @@ class DeviceTestCase(ViewTestCases.PrimaryObjectViewTestCase):
cls.bulk_edit_data = {
'device_type': devicetypes[1].pk,
'device_role': deviceroles[1].pk,
'role': roles[1].pk,
'tenant': None,
'platform': platforms[1].pk,
'serial': '123456',
@ -2909,14 +2909,14 @@ class CableTestCase(
site = Site.objects.create(name='Site 1', slug='site-1')
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
devicetype = DeviceType.objects.create(model='Device Type 1', manufacturer=manufacturer)
devicerole = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
vc = VirtualChassis.objects.create(name='Virtual Chassis')
devices = (
Device(name='Device 1', site=site, device_type=devicetype, device_role=devicerole),
Device(name='Device 2', site=site, device_type=devicetype, device_role=devicerole),
Device(name='Device 3', site=site, device_type=devicetype, device_role=devicerole),
Device(name='Device 4', site=site, device_type=devicetype, device_role=devicerole),
Device(name='Device 1', site=site, device_type=devicetype, role=role),
Device(name='Device 2', site=site, device_type=devicetype, role=role),
Device(name='Device 3', site=site, device_type=devicetype, role=role),
Device(name='Device 4', site=site, device_type=devicetype, role=role),
)
Device.objects.bulk_create(devices)
@ -3016,23 +3016,23 @@ class VirtualChassisTestCase(ViewTestCases.PrimaryObjectViewTestCase):
device_type = DeviceType.objects.create(
manufacturer=manufacturer, model='Device Type 1', slug='device-type-1'
)
device_role = DeviceRole.objects.create(
role = DeviceRole.objects.create(
name='Device Role', slug='device-role-1'
)
devices = (
Device(device_type=device_type, device_role=device_role, name='Device 1', site=site),
Device(device_type=device_type, device_role=device_role, name='Device 2', site=site),
Device(device_type=device_type, device_role=device_role, name='Device 3', site=site),
Device(device_type=device_type, device_role=device_role, name='Device 4', site=site),
Device(device_type=device_type, device_role=device_role, name='Device 5', site=site),
Device(device_type=device_type, device_role=device_role, name='Device 6', site=site),
Device(device_type=device_type, device_role=device_role, name='Device 7', site=site),
Device(device_type=device_type, device_role=device_role, name='Device 8', site=site),
Device(device_type=device_type, device_role=device_role, name='Device 9', site=site),
Device(device_type=device_type, device_role=device_role, name='Device 10', site=site),
Device(device_type=device_type, device_role=device_role, name='Device 11', site=site),
Device(device_type=device_type, device_role=device_role, name='Device 12', site=site),
Device(device_type=device_type, role=role, name='Device 1', site=site),
Device(device_type=device_type, role=role, name='Device 2', site=site),
Device(device_type=device_type, role=role, name='Device 3', site=site),
Device(device_type=device_type, role=role, name='Device 4', site=site),
Device(device_type=device_type, role=role, name='Device 5', site=site),
Device(device_type=device_type, role=role, name='Device 6', site=site),
Device(device_type=device_type, role=role, name='Device 7', site=site),
Device(device_type=device_type, role=role, name='Device 8', site=site),
Device(device_type=device_type, role=role, name='Device 9', site=site),
Device(device_type=device_type, role=role, name='Device 10', site=site),
Device(device_type=device_type, role=role, name='Device 11', site=site),
Device(device_type=device_type, role=role, name='Device 12', site=site),
)
Device.objects.bulk_create(devices)
@ -3211,11 +3211,11 @@ class PowerFeedTestCase(ViewTestCases.PrimaryObjectViewTestCase):
device_type = DeviceType.objects.create(
manufacturer=manufacturer, model='Device Type 1', slug='device-type-1'
)
device_role = DeviceRole.objects.create(
role = DeviceRole.objects.create(
name='Device Role', slug='device-role-1'
)
device = Device.objects.create(
site=Site.objects.first(), device_type=device_type, device_role=device_role
site=Site.objects.first(), device_type=device_type, role=role
)
powerfeed = PowerFeed.objects.first()

View File

@ -407,7 +407,7 @@ class SiteView(generic.ObjectView):
site=instance,
rack__isnull=True,
parent_bay__isnull=True
).prefetch_related('device_type__manufacturer', 'parent_bay', 'device_role')
).prefetch_related('device_type__manufacturer', 'parent_bay', 'role')
return {
'related_models': related_models,
@ -489,7 +489,7 @@ class LocationView(generic.ObjectView):
location=instance,
rack__isnull=True,
parent_bay__isnull=True
).prefetch_related('device_type__manufacturer', 'parent_bay', 'device_role')
).prefetch_related('device_type__manufacturer', 'parent_bay', 'role')
return {
'related_models': related_models,
@ -1721,7 +1721,7 @@ class InventoryItemTemplateBulkDeleteView(generic.BulkDeleteView):
class DeviceRoleListView(generic.ObjectListView):
queryset = DeviceRole.objects.annotate(
device_count=count_related(Device, 'device_role'),
device_count=count_related(Device, 'role'),
vm_count=count_related(VirtualMachine, 'role')
)
filterset = filtersets.DeviceRoleFilterSet
@ -1735,7 +1735,7 @@ class DeviceRoleView(generic.ObjectView):
def get_extra_context(self, request, instance):
related_models = (
(Device.objects.restrict(request.user, 'view').filter(device_role=instance), 'role_id'),
(Device.objects.restrict(request.user, 'view').filter(role=instance), 'role_id'),
(VirtualMachine.objects.restrict(request.user, 'view').filter(role=instance), 'role_id'),
)
@ -1762,7 +1762,7 @@ class DeviceRoleBulkImportView(generic.BulkImportView):
class DeviceRoleBulkEditView(generic.BulkEditView):
queryset = DeviceRole.objects.annotate(
device_count=count_related(Device, 'device_role'),
device_count=count_related(Device, 'role'),
vm_count=count_related(VirtualMachine, 'role')
)
filterset = filtersets.DeviceRoleFilterSet
@ -1772,7 +1772,7 @@ class DeviceRoleBulkEditView(generic.BulkEditView):
class DeviceRoleBulkDeleteView(generic.BulkDeleteView):
queryset = DeviceRole.objects.annotate(
device_count=count_related(Device, 'device_role'),
device_count=count_related(Device, 'role'),
vm_count=count_related(VirtualMachine, 'role')
)
filterset = filtersets.DeviceRoleFilterSet

View File

@ -19,8 +19,7 @@ class ConfigContextQuerySet(RestrictedQuerySet):
aggregate_data: If True, use the JSONBAgg aggregate function to return only the list of JSON data objects
"""
# `device_role` for Device; `role` for VirtualMachine
role = getattr(obj, 'device_role', None) or obj.role
role = obj.role
# Device type and location assignment is relevant only for Devices
device_type = getattr(obj, 'device_type', None)
@ -121,7 +120,7 @@ class ConfigContextModelQuerySet(RestrictedQuerySet):
if self.model._meta.model_name == 'device':
base_query.add((Q(locations=OuterRef('location')) | Q(locations=None)), Q.AND)
base_query.add((Q(device_types=OuterRef('device_type')) | Q(device_types=None)), Q.AND)
base_query.add((Q(roles=OuterRef('device_role')) | Q(roles=None)), Q.AND)
base_query.add((Q(roles=OuterRef('role')) | Q(roles=None)), Q.AND)
base_query.add((Q(sites=OuterRef('site')) | Q(sites=None)), Q.AND)
region_field = 'site__region'
sitegroup_field = 'site__group'

View File

@ -579,9 +579,9 @@ class ConfigContextTest(APIViewTestCases.APIViewTestCase):
"""
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
devicerole = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
site = Site.objects.create(name='Site-1', slug='site-1')
device = Device.objects.create(name='Device 1', device_type=devicetype, device_role=devicerole, site=site)
device = Device.objects.create(name='Device 1', device_type=devicetype, role=role, site=site)
# Test default config contexts (created at test setup)
rendered_context = device.get_config_context()

View File

@ -44,7 +44,7 @@ class ConfigContextTest(TestCase):
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
devicerole = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
region = Region.objects.create(name='Region')
sitegroup = SiteGroup.objects.create(name='Site Group')
site = Site.objects.create(name='Site 1', slug='site-1', region=region, group=sitegroup)
@ -58,7 +58,7 @@ class ConfigContextTest(TestCase):
Device.objects.create(
name='Device 1',
device_type=devicetype,
device_role=devicerole,
role=role,
site=site,
location=location
)
@ -252,7 +252,7 @@ class ConfigContextTest(TestCase):
location=location,
tenant=tenant,
platform=platform,
device_role=DeviceRole.objects.first(),
role=DeviceRole.objects.first(),
device_type=DeviceType.objects.first()
)
device.tags.add(tag)
@ -382,7 +382,7 @@ class ConfigContextTest(TestCase):
site=site,
tenant=tenant,
platform=platform,
device_role=DeviceRole.objects.first(),
role=DeviceRole.objects.first(),
device_type=DeviceType.objects.first()
)
device.tags.set(tags)
@ -430,7 +430,7 @@ class ConfigContextTest(TestCase):
site=site,
tenant=tenant,
platform=platform,
device_role=DeviceRole.objects.first(),
role=DeviceRole.objects.first(),
device_type=DeviceType.objects.first()
)
device.tags.set([tag1, tag2])

View File

@ -1009,11 +1009,11 @@ class ServiceTest(APIViewTestCases.APIViewTestCase):
site = Site.objects.create(name='Site 1', slug='site-1')
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1')
devicerole = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
devices = (
Device(name='Device 1', site=site, device_type=devicetype, device_role=devicerole),
Device(name='Device 2', site=site, device_type=devicetype, device_role=devicerole),
Device(name='Device 1', site=site, device_type=devicetype, role=role),
Device(name='Device 2', site=site, device_type=devicetype, role=role),
)
Device.objects.bulk_create(devices)

View File

@ -825,12 +825,12 @@ class IPAddressTestCase(TestCase, ChangeLoggedFilterSetTests):
site = Site.objects.create(name='Site 1', slug='site-1')
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1')
device_role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
devices = (
Device(device_type=device_type, name='Device 1', site=site, device_role=device_role),
Device(device_type=device_type, name='Device 2', site=site, device_role=device_role),
Device(device_type=device_type, name='Device 3', site=site, device_role=device_role),
Device(device_type=device_type, name='Device 1', site=site, role=role),
Device(device_type=device_type, name='Device 2', site=site, role=role),
Device(device_type=device_type, name='Device 3', site=site, role=role),
)
Device.objects.bulk_create(devices)
@ -1282,11 +1282,11 @@ class VLANTestCase(TestCase, ChangeLoggedFilterSetTests):
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1')
device_role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
devices = (
Device(name='Device 1', site=sites[0], location=locations[0], rack=racks[0], device_type=device_type, device_role=device_role),
Device(name='Device 2', site=sites[1], location=locations[1], rack=racks[1], device_type=device_type, device_role=device_role),
Device(name='Device 3', site=sites[2], location=locations[2], rack=racks[2], device_type=device_type, device_role=device_role),
Device(name='Device 1', site=sites[0], location=locations[0], rack=racks[0], device_type=device_type, role=role),
Device(name='Device 2', site=sites[1], location=locations[1], rack=racks[1], device_type=device_type, role=role),
Device(name='Device 3', site=sites[2], location=locations[2], rack=racks[2], device_type=device_type, role=role),
)
Device.objects.bulk_create(devices)
@ -1516,12 +1516,12 @@ class ServiceTestCase(TestCase, ChangeLoggedFilterSetTests):
site = Site.objects.create(name='Site 1', slug='site-1')
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1')
device_role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
devices = (
Device(device_type=device_type, name='Device 1', site=site, device_role=device_role),
Device(device_type=device_type, name='Device 2', site=site, device_role=device_role),
Device(device_type=device_type, name='Device 3', site=site, device_role=device_role),
Device(device_type=device_type, name='Device 1', site=site, role=role),
Device(device_type=device_type, name='Device 2', site=site, role=role),
Device(device_type=device_type, name='Device 3', site=site, role=role),
)
Device.objects.bulk_create(devices)

View File

@ -549,12 +549,12 @@ class TestL2VPNTermination(TestCase):
site = Site.objects.create(name='Site 1')
manufacturer = Manufacturer.objects.create(name='Manufacturer 1')
device_type = DeviceType.objects.create(model='Device Type 1', manufacturer=manufacturer)
device_role = DeviceRole.objects.create(name='Switch')
role = DeviceRole.objects.create(name='Switch')
device = Device.objects.create(
name='Device 1',
site=site,
device_type=device_type,
device_role=device_role,
role=role,
status='active'
)

View File

@ -909,8 +909,8 @@ class ServiceTestCase(ViewTestCases.PrimaryObjectViewTestCase):
site = Site.objects.create(name='Site 1', slug='site-1')
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1')
devicerole = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
device = Device.objects.create(name='Device 1', site=site, device_type=devicetype, device_role=devicerole)
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
device = Device.objects.create(name='Device 1', site=site, device_type=devicetype, role=role)
services = (
Service(device=device, name='Service 1', protocol=ServiceProtocolChoices.PROTOCOL_TCP, ports=[101]),

View File

@ -202,7 +202,7 @@
</tr>
<tr>
<th scope="row">{% trans "Role" %}</th>
<td>{{ object.device_role|linkify }}</td>
<td>{{ object.role|linkify }}</td>
</tr>
<tr>
<th scope="row">{% trans "Platform" %}</th>

View File

@ -10,7 +10,7 @@
<h5 class="offset-sm-3">{% trans "Device" %}</h5>
</div>
{% render_field form.name %}
{% render_field form.device_role %}
{% render_field form.role %}
{% render_field form.description %}
{% render_field form.tags %}
</div>

View File

@ -10,7 +10,7 @@
{% block extra_controls %}
{% if perms.dcim.add_device %}
<a href="{% url 'dcim:device_add' %}?device_role={{ object.pk }}" class="btn btn-sm btn-primary">
<a href="{% url 'dcim:device_add' %}?role={{ object.pk }}" class="btn btn-sm btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Device" %}
</a>
{% endif %}

View File

@ -19,7 +19,7 @@
<td>
<a href="{% url 'dcim:device' pk=device.pk %}">{{ device }}</a>
</td>
<td>{{ device.device_role }}</td>
<td>{{ device.role }}</td>
<td>{{ device.device_type }}</td>
{% if device.parent_bay %}
<td>{{ device.parent_bay.device|linkify }}</td>

View File

@ -13,7 +13,7 @@
{% block extra_controls %}
{% if perms.dcim.add_device %}
<a href="{% url 'dcim:device_add' %}?device_role={{ object.pk }}" class="btn btn-sm btn-primary">
<a href="{% url 'dcim:device_add' %}?role={{ object.pk }}" class="btn btn-sm btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Device" %}
</a>
{% endif %}

View File

@ -44,7 +44,7 @@ def create_test_device(name, site=None, **attrs):
manufacturer, _ = Manufacturer.objects.get_or_create(name='Manufacturer 1', slug='manufacturer-1')
devicetype, _ = DeviceType.objects.get_or_create(model='Device Type 1', manufacturer=manufacturer)
devicerole, _ = DeviceRole.objects.get_or_create(name='Device Role 1', slug='device-role-1')
device = Device.objects.create(name=name, site=site, device_type=devicetype, device_role=devicerole, **attrs)
device = Device.objects.create(name=name, site=site, device_type=devicetype, role=devicerole, **attrs)
return device

View File

@ -360,12 +360,12 @@ class DynamicFilterLookupExpressionTest(TestCase):
)
DeviceType.objects.bulk_create(device_types)
device_roles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
DeviceRole(name='Device Role 3', slug='device-role-3'),
)
DeviceRole.objects.bulk_create(device_roles)
DeviceRole.objects.bulk_create(roles)
platforms = (
Platform(name='Platform 1', slug='platform-1'),
@ -401,9 +401,9 @@ class DynamicFilterLookupExpressionTest(TestCase):
Rack.objects.bulk_create(racks)
devices = (
Device(name='Device 1', device_type=device_types[0], device_role=device_roles[0], platform=platforms[0], serial='ABC', asset_tag='1001', site=sites[0], rack=racks[0], position=1, face=DeviceFaceChoices.FACE_FRONT, status=DeviceStatusChoices.STATUS_ACTIVE, local_context_data={"foo": 123}),
Device(name='Device 2', device_type=device_types[1], device_role=device_roles[1], platform=platforms[1], serial='DEF', asset_tag='1002', site=sites[1], rack=racks[1], position=2, face=DeviceFaceChoices.FACE_FRONT, status=DeviceStatusChoices.STATUS_STAGED),
Device(name='Device 3', device_type=device_types[2], device_role=device_roles[2], platform=platforms[2], serial='GHI', asset_tag='1003', site=sites[2], rack=racks[2], position=3, face=DeviceFaceChoices.FACE_REAR, status=DeviceStatusChoices.STATUS_FAILED),
Device(name='Device 1', device_type=device_types[0], role=roles[0], platform=platforms[0], serial='ABC', asset_tag='1001', site=sites[0], rack=racks[0], position=1, face=DeviceFaceChoices.FACE_FRONT, status=DeviceStatusChoices.STATUS_ACTIVE, local_context_data={"foo": 123}),
Device(name='Device 2', device_type=device_types[1], role=roles[1], platform=platforms[1], serial='DEF', asset_tag='1002', site=sites[1], rack=racks[1], position=2, face=DeviceFaceChoices.FACE_FRONT, status=DeviceStatusChoices.STATUS_STAGED),
Device(name='Device 3', device_type=device_types[2], role=roles[2], platform=platforms[2], serial='GHI', asset_tag='1003', site=sites[2], rack=racks[2], position=3, face=DeviceFaceChoices.FACE_REAR, status=DeviceStatusChoices.STATUS_FAILED),
)
Device.objects.bulk_create(devices)

View File

@ -180,11 +180,11 @@ class VirtualMachineTestCase(ViewTestCases.PrimaryObjectViewTestCase):
@classmethod
def setUpTestData(cls):
deviceroles = (
roles = (
DeviceRole(name='Device Role 1', slug='device-role-1'),
DeviceRole(name='Device Role 2', slug='device-role-2'),
)
DeviceRole.objects.bulk_create(deviceroles)
DeviceRole.objects.bulk_create(roles)
platforms = (
Platform(name='Platform 1', slug='platform-1'),
@ -212,9 +212,9 @@ class VirtualMachineTestCase(ViewTestCases.PrimaryObjectViewTestCase):
)
virtual_machines = (
VirtualMachine(name='Virtual Machine 1', site=sites[0], cluster=clusters[0], device=devices[0], role=deviceroles[0], platform=platforms[0]),
VirtualMachine(name='Virtual Machine 2', site=sites[0], cluster=clusters[0], device=devices[0], role=deviceroles[0], platform=platforms[0]),
VirtualMachine(name='Virtual Machine 3', site=sites[0], cluster=clusters[0], device=devices[0], role=deviceroles[0], platform=platforms[0]),
VirtualMachine(name='Virtual Machine 1', site=sites[0], cluster=clusters[0], device=devices[0], role=roles[0], platform=platforms[0]),
VirtualMachine(name='Virtual Machine 2', site=sites[0], cluster=clusters[0], device=devices[0], role=roles[0], platform=platforms[0]),
VirtualMachine(name='Virtual Machine 3', site=sites[0], cluster=clusters[0], device=devices[0], role=roles[0], platform=platforms[0]),
)
VirtualMachine.objects.bulk_create(virtual_machines)
@ -228,7 +228,7 @@ class VirtualMachineTestCase(ViewTestCases.PrimaryObjectViewTestCase):
'platform': platforms[1].pk,
'name': 'Virtual Machine X',
'status': VirtualMachineStatusChoices.STATUS_STAGED,
'role': deviceroles[1].pk,
'role': roles[1].pk,
'primary_ip4': None,
'primary_ip6': None,
'vcpus': 4,
@ -260,7 +260,7 @@ class VirtualMachineTestCase(ViewTestCases.PrimaryObjectViewTestCase):
'tenant': None,
'platform': platforms[1].pk,
'status': VirtualMachineStatusChoices.STATUS_STAGED,
'role': deviceroles[1].pk,
'role': roles[1].pk,
'vcpus': 8,
'memory': 65535,
'disk': 8000,
@ -289,12 +289,12 @@ class VMInterfaceTestCase(ViewTestCases.DeviceComponentViewTestCase):
def setUpTestData(cls):
site = Site.objects.create(name='Site 1', slug='site-1')
devicerole = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
clustertype = ClusterType.objects.create(name='Cluster Type 1', slug='cluster-type-1')
cluster = Cluster.objects.create(name='Cluster 1', type=clustertype, site=site)
virtualmachines = (
VirtualMachine(name='Virtual Machine 1', site=site, cluster=cluster, role=devicerole),
VirtualMachine(name='Virtual Machine 2', site=site, cluster=cluster, role=devicerole),
VirtualMachine(name='Virtual Machine 1', site=site, cluster=cluster, role=role),
VirtualMachine(name='Virtual Machine 2', site=site, cluster=cluster, role=role),
)
VirtualMachine.objects.bulk_create(virtualmachines)