mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-14 09:51:22 -06:00
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:
parent
79030ecab2
commit
0bb86f1e7d
@ -390,7 +390,7 @@ class NewBranchScript(Script):
|
|||||||
name=f'{site.slug}-switch{i}',
|
name=f'{site.slug}-switch{i}',
|
||||||
site=site,
|
site=site,
|
||||||
status=DeviceStatusChoices.STATUS_PLANNED,
|
status=DeviceStatusChoices.STATUS_PLANNED,
|
||||||
device_role=switch_role
|
role=switch_role
|
||||||
)
|
)
|
||||||
switch.full_clean()
|
switch.full_clean()
|
||||||
switch.save()
|
switch.save()
|
||||||
|
@ -665,7 +665,8 @@ class PlatformSerializer(NetBoxModelSerializer):
|
|||||||
class DeviceSerializer(NetBoxModelSerializer):
|
class DeviceSerializer(NetBoxModelSerializer):
|
||||||
url = serializers.HyperlinkedIdentityField(view_name='dcim-api:device-detail')
|
url = serializers.HyperlinkedIdentityField(view_name='dcim-api:device-detail')
|
||||||
device_type = NestedDeviceTypeSerializer()
|
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)
|
tenant = NestedTenantSerializer(required=False, allow_null=True, default=None)
|
||||||
platform = NestedPlatformSerializer(required=False, allow_null=True)
|
platform = NestedPlatformSerializer(required=False, allow_null=True)
|
||||||
site = NestedSiteSerializer()
|
site = NestedSiteSerializer()
|
||||||
@ -707,9 +708,9 @@ class DeviceSerializer(NetBoxModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Device
|
model = Device
|
||||||
fields = [
|
fields = [
|
||||||
'id', 'url', 'display', 'name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag',
|
'id', 'url', 'display', 'name', 'device_type', 'role', 'device_role', 'tenant', 'platform', 'serial',
|
||||||
'site', 'location', 'rack', 'position', 'face', 'latitude', 'longitude', 'parent_device', 'status',
|
'asset_tag', 'site', 'location', 'rack', 'position', 'face', 'latitude', 'longitude', 'parent_device',
|
||||||
'airflow', 'primary_ip', 'primary_ip4', 'primary_ip6', 'oob_ip', 'cluster', 'virtual_chassis',
|
'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',
|
'vc_position', 'vc_priority', 'description', 'comments', 'config_template', 'local_context_data', 'tags',
|
||||||
'custom_fields', 'created', 'last_updated', 'console_port_count', 'console_server_port_count',
|
'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',
|
'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
|
data['device_bay'] = NestedDeviceBaySerializer(instance=device_bay, context=context).data
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
def get_device_role(self, obj):
|
||||||
|
return obj.role
|
||||||
|
|
||||||
|
|
||||||
class DeviceWithConfigContextSerializer(DeviceSerializer):
|
class DeviceWithConfigContextSerializer(DeviceSerializer):
|
||||||
config_context = serializers.SerializerMethodField(read_only=True)
|
config_context = serializers.SerializerMethodField(read_only=True)
|
||||||
|
|
||||||
class Meta(DeviceSerializer.Meta):
|
class Meta(DeviceSerializer.Meta):
|
||||||
fields = [
|
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',
|
'site', 'location', 'rack', 'position', 'face', 'parent_device', 'status', 'airflow', 'primary_ip',
|
||||||
'primary_ip4', 'primary_ip6', 'oob_ip', 'cluster', 'virtual_chassis', 'vc_position', 'vc_priority',
|
'primary_ip4', 'primary_ip6', 'oob_ip', 'cluster', 'virtual_chassis', 'vc_position', 'vc_priority',
|
||||||
'description', 'comments', 'local_context_data', 'tags', 'custom_fields', 'config_context',
|
'description', 'comments', 'local_context_data', 'tags', 'custom_fields', 'config_context',
|
||||||
@ -1035,7 +1039,8 @@ class ModuleBaySerializer(NetBoxModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = ModuleBay
|
model = ModuleBay
|
||||||
fields = [
|
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',
|
'created', 'last_updated',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -362,7 +362,7 @@ class InventoryItemTemplateViewSet(NetBoxModelViewSet):
|
|||||||
|
|
||||||
class DeviceRoleViewSet(NetBoxModelViewSet):
|
class DeviceRoleViewSet(NetBoxModelViewSet):
|
||||||
queryset = DeviceRole.objects.prefetch_related('config_template', 'tags').annotate(
|
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')
|
virtualmachine_count=count_related(VirtualMachine, 'role')
|
||||||
)
|
)
|
||||||
serializer_class = serializers.DeviceRoleSerializer
|
serializer_class = serializers.DeviceRoleSerializer
|
||||||
@ -393,7 +393,7 @@ class DeviceViewSet(
|
|||||||
NetBoxModelViewSet
|
NetBoxModelViewSet
|
||||||
):
|
):
|
||||||
queryset = Device.objects.prefetch_related(
|
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',
|
'virtual_chassis__master', 'primary_ip4__nat_outside', 'primary_ip6__nat_outside', 'config_template', 'tags',
|
||||||
)
|
)
|
||||||
filterset_class = filtersets.DeviceFilterSet
|
filterset_class = filtersets.DeviceFilterSet
|
||||||
|
@ -840,12 +840,12 @@ class DeviceFilterSet(NetBoxModelFilterSet, TenancyFilterSet, ContactModelFilter
|
|||||||
label=_('Device type (ID)'),
|
label=_('Device type (ID)'),
|
||||||
)
|
)
|
||||||
role_id = django_filters.ModelMultipleChoiceFilter(
|
role_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='device_role_id',
|
field_name='role_id',
|
||||||
queryset=DeviceRole.objects.all(),
|
queryset=DeviceRole.objects.all(),
|
||||||
label=_('Role (ID)'),
|
label=_('Role (ID)'),
|
||||||
)
|
)
|
||||||
role = django_filters.ModelMultipleChoiceFilter(
|
role = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='device_role__slug',
|
field_name='role__slug',
|
||||||
queryset=DeviceRole.objects.all(),
|
queryset=DeviceRole.objects.all(),
|
||||||
to_field_name='slug',
|
to_field_name='slug',
|
||||||
label=_('Role (slug)'),
|
label=_('Role (slug)'),
|
||||||
@ -1251,13 +1251,13 @@ class DeviceComponentFilterSet(django_filters.FilterSet):
|
|||||||
to_field_name='model',
|
to_field_name='model',
|
||||||
label=_('Device type (model)'),
|
label=_('Device type (model)'),
|
||||||
)
|
)
|
||||||
device_role_id = django_filters.ModelMultipleChoiceFilter(
|
role_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='device__device_role',
|
field_name='device__role',
|
||||||
queryset=DeviceRole.objects.all(),
|
queryset=DeviceRole.objects.all(),
|
||||||
label=_('Device role (ID)'),
|
label=_('Device role (ID)'),
|
||||||
)
|
)
|
||||||
device_role = django_filters.ModelMultipleChoiceFilter(
|
role = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='device__device_role__slug',
|
field_name='device__role__slug',
|
||||||
queryset=DeviceRole.objects.all(),
|
queryset=DeviceRole.objects.all(),
|
||||||
to_field_name='slug',
|
to_field_name='slug',
|
||||||
label=_('Device role (slug)'),
|
label=_('Device role (slug)'),
|
||||||
@ -1273,6 +1273,18 @@ class DeviceComponentFilterSet(django_filters.FilterSet):
|
|||||||
to_field_name='name',
|
to_field_name='name',
|
||||||
label=_('Virtual Chassis'),
|
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):
|
def search(self, queryset, name, value):
|
||||||
if not value.strip():
|
if not value.strip():
|
||||||
|
@ -553,7 +553,7 @@ class DeviceBulkEditForm(NetBoxModelBulkEditForm):
|
|||||||
'manufacturer_id': '$manufacturer'
|
'manufacturer_id': '$manufacturer'
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
device_role = DynamicModelChoiceField(
|
role = DynamicModelChoiceField(
|
||||||
label=_('Device role'),
|
label=_('Device role'),
|
||||||
queryset=DeviceRole.objects.all(),
|
queryset=DeviceRole.objects.all(),
|
||||||
required=False
|
required=False
|
||||||
@ -610,7 +610,7 @@ class DeviceBulkEditForm(NetBoxModelBulkEditForm):
|
|||||||
|
|
||||||
model = Device
|
model = Device
|
||||||
fieldsets = (
|
fieldsets = (
|
||||||
(_('Device'), ('device_role', 'status', 'tenant', 'platform', 'description')),
|
(_('Device'), ('role', 'status', 'tenant', 'platform', 'description')),
|
||||||
(_('Location'), ('site', 'location')),
|
(_('Location'), ('site', 'location')),
|
||||||
(_('Hardware'), ('manufacturer', 'device_type', 'airflow', 'serial')),
|
(_('Hardware'), ('manufacturer', 'device_type', 'airflow', 'serial')),
|
||||||
(_('Configuration'), ('config_template',)),
|
(_('Configuration'), ('config_template',)),
|
||||||
|
@ -404,7 +404,7 @@ class PlatformImportForm(NetBoxModelImportForm):
|
|||||||
|
|
||||||
|
|
||||||
class BaseDeviceImportForm(NetBoxModelImportForm):
|
class BaseDeviceImportForm(NetBoxModelImportForm):
|
||||||
device_role = CSVModelChoiceField(
|
role = CSVModelChoiceField(
|
||||||
label=_('Device role'),
|
label=_('Device role'),
|
||||||
queryset=DeviceRole.objects.all(),
|
queryset=DeviceRole.objects.all(),
|
||||||
to_field_name='name',
|
to_field_name='name',
|
||||||
@ -527,7 +527,7 @@ class DeviceImportForm(BaseDeviceImportForm):
|
|||||||
|
|
||||||
class Meta(BaseDeviceImportForm.Meta):
|
class Meta(BaseDeviceImportForm.Meta):
|
||||||
fields = [
|
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',
|
'site', 'location', 'rack', 'position', 'face', 'latitude', 'longitude', 'parent', 'device_bay', 'airflow',
|
||||||
'virtual_chassis', 'vc_position', 'vc_priority', 'cluster', 'description', 'config_template', 'comments',
|
'virtual_chassis', 'vc_position', 'vc_priority', 'cluster', 'description', 'config_template', 'comments',
|
||||||
'tags',
|
'tags',
|
||||||
|
@ -109,7 +109,7 @@ class DeviceComponentFilterForm(NetBoxModelFilterSetForm):
|
|||||||
required=False,
|
required=False,
|
||||||
label=_('Device type')
|
label=_('Device type')
|
||||||
)
|
)
|
||||||
device_role_id = DynamicModelMultipleChoiceField(
|
role_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=DeviceRole.objects.all(),
|
queryset=DeviceRole.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
label=_('Device role')
|
label=_('Device role')
|
||||||
@ -122,7 +122,7 @@ class DeviceComponentFilterForm(NetBoxModelFilterSetForm):
|
|||||||
'location_id': '$location_id',
|
'location_id': '$location_id',
|
||||||
'virtual_chassis_id': '$virtual_chassis_id',
|
'virtual_chassis_id': '$virtual_chassis_id',
|
||||||
'device_type_id': '$device_type_id',
|
'device_type_id': '$device_type_id',
|
||||||
'role_id': '$device_role_id'
|
'role_id': '$role_id'
|
||||||
},
|
},
|
||||||
label=_('Device')
|
label=_('Device')
|
||||||
)
|
)
|
||||||
@ -1136,7 +1136,7 @@ class ConsolePortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|||||||
(None, ('q', 'filter_id', 'tag')),
|
(None, ('q', 'filter_id', 'tag')),
|
||||||
(_('Attributes'), ('name', 'label', 'type', 'speed')),
|
(_('Attributes'), ('name', 'label', 'type', 'speed')),
|
||||||
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
|
(_('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')),
|
(_('Connection'), ('cabled', 'connected', 'occupied')),
|
||||||
)
|
)
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
@ -1158,7 +1158,7 @@ class ConsoleServerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterF
|
|||||||
(None, ('q', 'filter_id', 'tag')),
|
(None, ('q', 'filter_id', 'tag')),
|
||||||
(_('Attributes'), ('name', 'label', 'type', 'speed')),
|
(_('Attributes'), ('name', 'label', 'type', 'speed')),
|
||||||
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
|
(_('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')),
|
(_('Connection'), ('cabled', 'connected', 'occupied')),
|
||||||
)
|
)
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
@ -1180,7 +1180,7 @@ class PowerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|||||||
(None, ('q', 'filter_id', 'tag')),
|
(None, ('q', 'filter_id', 'tag')),
|
||||||
(_('Attributes'), ('name', 'label', 'type')),
|
(_('Attributes'), ('name', 'label', 'type')),
|
||||||
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
|
(_('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')),
|
(_('Connection'), ('cabled', 'connected', 'occupied')),
|
||||||
)
|
)
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
@ -1197,7 +1197,7 @@ class PowerOutletFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|||||||
(None, ('q', 'filter_id', 'tag')),
|
(None, ('q', 'filter_id', 'tag')),
|
||||||
(_('Attributes'), ('name', 'label', 'type')),
|
(_('Attributes'), ('name', 'label', 'type')),
|
||||||
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
|
(_('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')),
|
(_('Connection'), ('cabled', 'connected', 'occupied')),
|
||||||
)
|
)
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
@ -1217,7 +1217,7 @@ class InterfaceFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|||||||
(_('PoE'), ('poe_mode', 'poe_type')),
|
(_('PoE'), ('poe_mode', 'poe_type')),
|
||||||
(_('Wireless'), ('rf_role', 'rf_channel', 'rf_channel_width', 'tx_power')),
|
(_('Wireless'), ('rf_role', 'rf_channel', 'rf_channel_width', 'tx_power')),
|
||||||
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
|
(_('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')),
|
(_('Connection'), ('cabled', 'connected', 'occupied')),
|
||||||
)
|
)
|
||||||
vdc_id = DynamicModelMultipleChoiceField(
|
vdc_id = DynamicModelMultipleChoiceField(
|
||||||
@ -1324,7 +1324,7 @@ class FrontPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
|||||||
(None, ('q', 'filter_id', 'tag')),
|
(None, ('q', 'filter_id', 'tag')),
|
||||||
(_('Attributes'), ('name', 'label', 'type', 'color')),
|
(_('Attributes'), ('name', 'label', 'type', 'color')),
|
||||||
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
|
(_('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')),
|
(_('Cable'), ('cabled', 'occupied')),
|
||||||
)
|
)
|
||||||
model = FrontPort
|
model = FrontPort
|
||||||
@ -1346,7 +1346,7 @@ class RearPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
|||||||
(None, ('q', 'filter_id', 'tag')),
|
(None, ('q', 'filter_id', 'tag')),
|
||||||
(_('Attributes'), ('name', 'label', 'type', 'color')),
|
(_('Attributes'), ('name', 'label', 'type', 'color')),
|
||||||
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
|
(_('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')),
|
(_('Cable'), ('cabled', 'occupied')),
|
||||||
)
|
)
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
@ -1367,7 +1367,7 @@ class ModuleBayFilterForm(DeviceComponentFilterForm):
|
|||||||
(None, ('q', 'filter_id', 'tag')),
|
(None, ('q', 'filter_id', 'tag')),
|
||||||
(_('Attributes'), ('name', 'label', 'position')),
|
(_('Attributes'), ('name', 'label', 'position')),
|
||||||
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
|
(_('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)
|
tag = TagFilterField(model)
|
||||||
position = forms.CharField(
|
position = forms.CharField(
|
||||||
@ -1382,7 +1382,7 @@ class DeviceBayFilterForm(DeviceComponentFilterForm):
|
|||||||
(None, ('q', 'filter_id', 'tag')),
|
(None, ('q', 'filter_id', 'tag')),
|
||||||
(_('Attributes'), ('name', 'label')),
|
(_('Attributes'), ('name', 'label')),
|
||||||
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
|
(_('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)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
@ -1393,7 +1393,7 @@ class InventoryItemFilterForm(DeviceComponentFilterForm):
|
|||||||
(None, ('q', 'filter_id', 'tag')),
|
(None, ('q', 'filter_id', 'tag')),
|
||||||
(_('Attributes'), ('name', 'label', 'role_id', 'manufacturer_id', 'serial', 'asset_tag', 'discovered')),
|
(_('Attributes'), ('name', 'label', 'role_id', 'manufacturer_id', 'serial', 'asset_tag', 'discovered')),
|
||||||
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
|
(_('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(
|
role_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=InventoryItemRole.objects.all(),
|
queryset=InventoryItemRole.objects.all(),
|
||||||
|
@ -434,7 +434,7 @@ class DeviceForm(TenancyForm, NetBoxModelForm):
|
|||||||
queryset=DeviceType.objects.all(),
|
queryset=DeviceType.objects.all(),
|
||||||
selector=True
|
selector=True
|
||||||
)
|
)
|
||||||
device_role = DynamicModelChoiceField(
|
role = DynamicModelChoiceField(
|
||||||
label=_('Device role'),
|
label=_('Device role'),
|
||||||
queryset=DeviceRole.objects.all()
|
queryset=DeviceRole.objects.all()
|
||||||
)
|
)
|
||||||
@ -479,7 +479,7 @@ class DeviceForm(TenancyForm, NetBoxModelForm):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Device
|
model = Device
|
||||||
fields = [
|
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',
|
'latitude', 'longitude', 'status', 'airflow', 'platform', 'primary_ip4', 'primary_ip6', 'oob_ip', 'cluster',
|
||||||
'tenant_group', 'tenant', 'virtual_chassis', 'vc_position', 'vc_priority', 'description', 'config_template',
|
'tenant_group', 'tenant', 'virtual_chassis', 'vc_position', 'vc_priority', 'description', 'config_template',
|
||||||
'comments', 'tags', 'local_context_data',
|
'comments', 'tags', 'local_context_data',
|
||||||
|
@ -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
|
||||||
|
),
|
||||||
|
]
|
@ -537,7 +537,7 @@ class Device(PrimaryModel, ConfigContextModel, TrackingModelMixin):
|
|||||||
on_delete=models.PROTECT,
|
on_delete=models.PROTECT,
|
||||||
related_name='instances'
|
related_name='instances'
|
||||||
)
|
)
|
||||||
device_role = models.ForeignKey(
|
role = models.ForeignKey(
|
||||||
to='dcim.DeviceRole',
|
to='dcim.DeviceRole',
|
||||||
on_delete=models.PROTECT,
|
on_delete=models.PROTECT,
|
||||||
related_name='devices',
|
related_name='devices',
|
||||||
@ -758,7 +758,7 @@ class Device(PrimaryModel, ConfigContextModel, TrackingModelMixin):
|
|||||||
objects = ConfigContextModelQuerySet.as_manager()
|
objects = ConfigContextModelQuerySet.as_manager()
|
||||||
|
|
||||||
clone_fields = (
|
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',
|
'cluster', 'virtual_chassis',
|
||||||
)
|
)
|
||||||
prerequisite_models = (
|
prerequisite_models = (
|
||||||
@ -808,6 +808,20 @@ class Device(PrimaryModel, ConfigContextModel, TrackingModelMixin):
|
|||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
return reverse('dcim:device', args=[self.pk])
|
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):
|
def clean(self):
|
||||||
super().clean()
|
super().clean()
|
||||||
|
|
||||||
@ -1063,8 +1077,8 @@ class Device(PrimaryModel, ConfigContextModel, TrackingModelMixin):
|
|||||||
"""
|
"""
|
||||||
if self.config_template:
|
if self.config_template:
|
||||||
return self.config_template
|
return self.config_template
|
||||||
if self.device_role.config_template:
|
if self.role.config_template:
|
||||||
return self.device_role.config_template
|
return self.role.config_template
|
||||||
if self.platform and self.platform.config_template:
|
if self.platform and self.platform.config_template:
|
||||||
return self.platform.config_template
|
return self.platform.config_template
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ class Rack(PrimaryModel, WeightMixin):
|
|||||||
devices = Device.objects.prefetch_related(
|
devices = Device.objects.prefetch_related(
|
||||||
'device_type',
|
'device_type',
|
||||||
'device_type__manufacturer',
|
'device_type__manufacturer',
|
||||||
'device_role'
|
'role'
|
||||||
).annotate(
|
).annotate(
|
||||||
devicebay_count=Count('devicebays')
|
devicebay_count=Count('devicebays')
|
||||||
).exclude(
|
).exclude(
|
||||||
|
@ -167,9 +167,9 @@ class CableTraceSVG:
|
|||||||
if hasattr(instance, 'parent_object'):
|
if hasattr(instance, 'parent_object'):
|
||||||
# Termination
|
# Termination
|
||||||
return getattr(instance, 'color', 'f0f0f0') or 'f0f0f0'
|
return getattr(instance, 'color', 'f0f0f0') or 'f0f0f0'
|
||||||
if hasattr(instance, 'device_role'):
|
if hasattr(instance, 'role'):
|
||||||
# Device
|
# Device
|
||||||
return instance.device_role.color
|
return instance.role.color
|
||||||
else:
|
else:
|
||||||
# Other parent object
|
# Other parent object
|
||||||
return 'e0e0e0'
|
return 'e0e0e0'
|
||||||
|
@ -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
|
Return a description for a device to be rendered in the rack elevation in the following format
|
||||||
|
|
||||||
Name: <name>
|
Name: <name>
|
||||||
Role: <device_role>
|
Role: <role>
|
||||||
Device Type: <manufacturer> <model> (<u_height>)
|
Device Type: <manufacturer> <model> (<u_height>)
|
||||||
Asset tag: <asset_tag> (if defined)
|
Asset tag: <asset_tag> (if defined)
|
||||||
Serial: <serial> (if defined)
|
Serial: <serial> (if defined)
|
||||||
Description: <description> (if defined)
|
Description: <description> (if defined)
|
||||||
"""
|
"""
|
||||||
description = f'Name: {device.name}'
|
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'
|
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})'
|
description += f'\nDevice Type: {device.device_type.manufacturer.name} {device.device_type.model} ({u_height})'
|
||||||
if device.asset_tag:
|
if device.asset_tag:
|
||||||
@ -205,7 +205,7 @@ class RackElevationSVG:
|
|||||||
"""
|
"""
|
||||||
Draw the front (mounted) face of a device.
|
Draw the front (mounted) face of a device.
|
||||||
"""
|
"""
|
||||||
color = device.device_role.color
|
color = device.role.color
|
||||||
image = device.device_type.front_image
|
image = device.device_type.front_image
|
||||||
self._draw_device(device, coords, size, color=color, image=image)
|
self._draw_device(device, coords, size, color=color, image=image)
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ class DeviceTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable):
|
|||||||
verbose_name=_('Position'),
|
verbose_name=_('Position'),
|
||||||
template_code='{{ value|floatformat }}'
|
template_code='{{ value|floatformat }}'
|
||||||
)
|
)
|
||||||
device_role = columns.ColoredLabelColumn(
|
role = columns.ColoredLabelColumn(
|
||||||
verbose_name=_('Role')
|
verbose_name=_('Role')
|
||||||
)
|
)
|
||||||
manufacturer = tables.Column(
|
manufacturer = tables.Column(
|
||||||
@ -285,14 +285,14 @@ class DeviceTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable):
|
|||||||
class Meta(NetBoxTable.Meta):
|
class Meta(NetBoxTable.Meta):
|
||||||
model = models.Device
|
model = models.Device
|
||||||
fields = (
|
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',
|
'platform', 'serial', 'asset_tag', 'region', 'site_group', 'site', 'location', 'rack', 'parent_device',
|
||||||
'device_bay_position', 'position', 'face', 'latitude', 'longitude', 'airflow', 'primary_ip', 'primary_ip4',
|
'device_bay_position', 'position', 'face', 'latitude', 'longitude', 'airflow', 'primary_ip', 'primary_ip4',
|
||||||
'primary_ip6', 'oob_ip', 'cluster', 'virtual_chassis', 'vc_position', 'vc_priority', 'description',
|
'primary_ip6', 'oob_ip', 'cluster', 'virtual_chassis', 'vc_position', 'vc_priority', 'description',
|
||||||
'config_template', 'comments', 'contacts', 'tags', 'created', 'last_updated',
|
'config_template', 'comments', 'contacts', 'tags', 'created', 'last_updated',
|
||||||
)
|
)
|
||||||
default_columns = (
|
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',
|
'primary_ip',
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -314,7 +314,7 @@ class DeviceImportTable(TenancyColumnsMixin, NetBoxTable):
|
|||||||
verbose_name=_('Rack'),
|
verbose_name=_('Rack'),
|
||||||
linkify=True
|
linkify=True
|
||||||
)
|
)
|
||||||
device_role = tables.Column(
|
role = tables.Column(
|
||||||
verbose_name=_('Role')
|
verbose_name=_('Role')
|
||||||
)
|
)
|
||||||
device_type = tables.Column(
|
device_type = tables.Column(
|
||||||
@ -323,7 +323,7 @@ class DeviceImportTable(TenancyColumnsMixin, NetBoxTable):
|
|||||||
|
|
||||||
class Meta(NetBoxTable.Meta):
|
class Meta(NetBoxTable.Meta):
|
||||||
model = models.Device
|
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
|
empty_text = False
|
||||||
|
|
||||||
|
|
||||||
@ -822,8 +822,8 @@ class DeviceBayTable(DeviceComponentTable):
|
|||||||
'args': [Accessor('device_id')],
|
'args': [Accessor('device_id')],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
device_role = columns.ColoredLabelColumn(
|
role = columns.ColoredLabelColumn(
|
||||||
accessor=Accessor('installed_device__device_role'),
|
accessor=Accessor('installed_device__role'),
|
||||||
verbose_name=_('Role')
|
verbose_name=_('Role')
|
||||||
)
|
)
|
||||||
device_type = tables.Column(
|
device_type = tables.Column(
|
||||||
@ -847,8 +847,8 @@ class DeviceBayTable(DeviceComponentTable):
|
|||||||
class Meta(DeviceComponentTable.Meta):
|
class Meta(DeviceComponentTable.Meta):
|
||||||
model = models.DeviceBay
|
model = models.DeviceBay
|
||||||
fields = (
|
fields = (
|
||||||
'pk', 'id', 'name', 'device', 'label', 'status', 'device_role', 'device_type', 'installed_device', 'description', 'tags',
|
'pk', 'id', 'name', 'device', 'label', 'status', 'role', 'device_type', 'installed_device', 'description',
|
||||||
'created', 'last_updated',
|
'tags', 'created', 'last_updated',
|
||||||
)
|
)
|
||||||
|
|
||||||
default_columns = ('pk', 'name', 'device', 'label', 'status', 'installed_device', 'description')
|
default_columns = ('pk', 'name', 'device', 'label', 'status', 'installed_device', 'description')
|
||||||
|
@ -40,7 +40,7 @@ class Mixins:
|
|||||||
peer_device = Device.objects.create(
|
peer_device = Device.objects.create(
|
||||||
site=Site.objects.first(),
|
site=Site.objects.first(),
|
||||||
device_type=DeviceType.objects.first(),
|
device_type=DeviceType.objects.first(),
|
||||||
device_role=DeviceRole.objects.first(),
|
role=DeviceRole.objects.first(),
|
||||||
name='Peer Device'
|
name='Peer Device'
|
||||||
)
|
)
|
||||||
if self.peer_termination_type is None:
|
if self.peer_termination_type is None:
|
||||||
@ -1052,12 +1052,12 @@ class DeviceRoleTest(APIViewTestCases.APIViewTestCase):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
|
|
||||||
device_roles = (
|
roles = (
|
||||||
DeviceRole(name='Device Role 1', slug='device-role-1', color='ff0000'),
|
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 2', slug='device-role-2', color='00ff00'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3', color='0000ff'),
|
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):
|
class PlatformTest(APIViewTestCases.APIViewTestCase):
|
||||||
@ -1122,11 +1122,11 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
|
|||||||
)
|
)
|
||||||
DeviceType.objects.bulk_create(device_types)
|
DeviceType.objects.bulk_create(device_types)
|
||||||
|
|
||||||
device_roles = (
|
roles = (
|
||||||
DeviceRole(name='Device Role 1', slug='device-role-1', color='ff0000'),
|
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 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')
|
cluster_type = ClusterType.objects.create(name='Cluster Type 1', slug='cluster-type-1')
|
||||||
|
|
||||||
@ -1139,7 +1139,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
|
|||||||
devices = (
|
devices = (
|
||||||
Device(
|
Device(
|
||||||
device_type=device_types[0],
|
device_type=device_types[0],
|
||||||
device_role=device_roles[0],
|
role=roles[0],
|
||||||
name='Device 1',
|
name='Device 1',
|
||||||
site=sites[0],
|
site=sites[0],
|
||||||
rack=racks[0],
|
rack=racks[0],
|
||||||
@ -1148,7 +1148,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
|
|||||||
),
|
),
|
||||||
Device(
|
Device(
|
||||||
device_type=device_types[0],
|
device_type=device_types[0],
|
||||||
device_role=device_roles[0],
|
role=roles[0],
|
||||||
name='Device 2',
|
name='Device 2',
|
||||||
site=sites[0],
|
site=sites[0],
|
||||||
rack=racks[0],
|
rack=racks[0],
|
||||||
@ -1157,7 +1157,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
|
|||||||
),
|
),
|
||||||
Device(
|
Device(
|
||||||
device_type=device_types[0],
|
device_type=device_types[0],
|
||||||
device_role=device_roles[0],
|
role=roles[0],
|
||||||
name='Device 3',
|
name='Device 3',
|
||||||
site=sites[0],
|
site=sites[0],
|
||||||
rack=racks[0],
|
rack=racks[0],
|
||||||
@ -1170,7 +1170,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
|
|||||||
cls.create_data = [
|
cls.create_data = [
|
||||||
{
|
{
|
||||||
'device_type': device_types[1].pk,
|
'device_type': device_types[1].pk,
|
||||||
'device_role': device_roles[1].pk,
|
'role': roles[1].pk,
|
||||||
'name': 'Test Device 4',
|
'name': 'Test Device 4',
|
||||||
'site': sites[1].pk,
|
'site': sites[1].pk,
|
||||||
'rack': racks[1].pk,
|
'rack': racks[1].pk,
|
||||||
@ -1178,7 +1178,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'device_type': device_types[1].pk,
|
'device_type': device_types[1].pk,
|
||||||
'device_role': device_roles[1].pk,
|
'role': roles[1].pk,
|
||||||
'name': 'Test Device 5',
|
'name': 'Test Device 5',
|
||||||
'site': sites[1].pk,
|
'site': sites[1].pk,
|
||||||
'rack': racks[1].pk,
|
'rack': racks[1].pk,
|
||||||
@ -1186,7 +1186,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'device_type': device_types[1].pk,
|
'device_type': device_types[1].pk,
|
||||||
'device_role': device_roles[1].pk,
|
'role': roles[1].pk,
|
||||||
'name': 'Test Device 6',
|
'name': 'Test Device 6',
|
||||||
'site': sites[1].pk,
|
'site': sites[1].pk,
|
||||||
'rack': racks[1].pk,
|
'rack': racks[1].pk,
|
||||||
@ -1221,7 +1221,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
|
|||||||
device = Device.objects.first()
|
device = Device.objects.first()
|
||||||
data = {
|
data = {
|
||||||
'device_type': device.device_type.pk,
|
'device_type': device.device_type.pk,
|
||||||
'device_role': device.device_role.pk,
|
'role': device.role.pk,
|
||||||
'site': device.site.pk,
|
'site': device.site.pk,
|
||||||
'name': device.name,
|
'name': device.name,
|
||||||
}
|
}
|
||||||
@ -1241,7 +1241,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
|
|||||||
data = [
|
data = [
|
||||||
{
|
{
|
||||||
'device_type': device_type.pk,
|
'device_type': device_type.pk,
|
||||||
'device_role': device.device_role.pk,
|
'role': device.role.pk,
|
||||||
'site': device.site.pk,
|
'site': device.site.pk,
|
||||||
'name': 'Test Device 7',
|
'name': 'Test Device 7',
|
||||||
'rack': device.rack.pk,
|
'rack': device.rack.pk,
|
||||||
@ -1250,7 +1250,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'device_type': device_type.pk,
|
'device_type': device_type.pk,
|
||||||
'device_role': device.device_role.pk,
|
'role': device.role.pk,
|
||||||
'site': device.site.pk,
|
'site': device.site.pk,
|
||||||
'name': 'Test Device 8',
|
'name': 'Test Device 8',
|
||||||
'rack': device.rack.pk,
|
'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')
|
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')
|
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
|
||||||
site = Site.objects.create(name='Site 1', slug='site-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 = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
|
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
|
||||||
|
|
||||||
console_ports = (
|
console_ports = (
|
||||||
ConsolePort(device=device, name='Console Port 1'),
|
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')
|
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')
|
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
|
||||||
site = Site.objects.create(name='Site 1', slug='site-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 = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
|
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
|
||||||
|
|
||||||
console_server_ports = (
|
console_server_ports = (
|
||||||
ConsoleServerPort(device=device, name='Console Server Port 1'),
|
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')
|
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')
|
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
|
||||||
site = Site.objects.create(name='Site 1', slug='site-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 = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
|
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
|
||||||
|
|
||||||
power_ports = (
|
power_ports = (
|
||||||
PowerPort(device=device, name='Power Port 1'),
|
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')
|
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')
|
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
|
||||||
site = Site.objects.create(name='Site 1', slug='site-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 = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
|
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
|
||||||
|
|
||||||
power_ports = (
|
power_ports = (
|
||||||
PowerPort(device=device, name='Power Port 1'),
|
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')
|
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')
|
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
|
||||||
site = Site.objects.create(name='Site 1', slug='site-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 = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
|
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
|
||||||
|
|
||||||
interfaces = (
|
interfaces = (
|
||||||
Interface(device=device, name='Interface 1', type='1000base-t'),
|
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')
|
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')
|
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
|
||||||
site = Site.objects.create(name='Site 1', slug='site-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 = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
|
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
|
||||||
|
|
||||||
rear_ports = (
|
rear_ports = (
|
||||||
RearPort(device=device, name='Rear Port 1', type=PortTypeChoices.TYPE_8P8C),
|
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')
|
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')
|
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
|
||||||
site = Site.objects.create(name='Site 1', slug='site-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 = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
|
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
|
||||||
|
|
||||||
rear_ports = (
|
rear_ports = (
|
||||||
RearPort(device=device, name='Rear Port 1', type=PortTypeChoices.TYPE_8P8C),
|
RearPort(device=device, name='Rear Port 1', type=PortTypeChoices.TYPE_8P8C),
|
||||||
@ -1719,10 +1719,10 @@ class ModuleBayTest(APIViewTestCases.APIViewTestCase):
|
|||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
|
||||||
site = Site.objects.create(name='Site 1', slug='site-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_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 = (
|
device_bays = (
|
||||||
ModuleBay(device=device, name='Device Bay 1'),
|
ModuleBay(device=device, name='Device Bay 1'),
|
||||||
@ -1758,7 +1758,7 @@ class DeviceBayTest(APIViewTestCases.APIViewTestCase):
|
|||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
|
||||||
site = Site.objects.create(name='Site 1', slug='site-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 = (
|
device_types = (
|
||||||
DeviceType(
|
DeviceType(
|
||||||
@ -1777,10 +1777,10 @@ class DeviceBayTest(APIViewTestCases.APIViewTestCase):
|
|||||||
DeviceType.objects.bulk_create(device_types)
|
DeviceType.objects.bulk_create(device_types)
|
||||||
|
|
||||||
devices = (
|
devices = (
|
||||||
Device(device_type=device_types[0], device_role=devicerole, name='Device 1', site=site),
|
Device(device_type=device_types[0], role=role, 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], role=role, 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], role=role, name='Device 3', site=site),
|
||||||
Device(device_type=device_types[1], device_role=devicerole, name='Device 4', site=site),
|
Device(device_type=device_types[1], role=role, name='Device 4', site=site),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
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')
|
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')
|
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1', slug='device-type-1')
|
||||||
site = Site.objects.create(name='Site 1', slug='site-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 = Device.objects.create(device_type=devicetype, device_role=devicerole, name='Device 1', site=site)
|
device = Device.objects.create(device_type=devicetype, role=role, name='Device 1', site=site)
|
||||||
|
|
||||||
roles = (
|
roles = (
|
||||||
InventoryItemRole(name='Inventory Item Role 1', slug='inventory-item-role-1'),
|
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')
|
site = Site.objects.create(name='Site 1', slug='site-1')
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-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')
|
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 = (
|
devices = (
|
||||||
Device(device_type=devicetype, device_role=devicerole, name='Device 1', site=site),
|
Device(device_type=devicetype, role=role, 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 2', site=site),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -1998,10 +1998,10 @@ class ConnectedDeviceTest(APITestCase):
|
|||||||
site = Site.objects.create(name='Site 1', slug='site-1')
|
site = Site.objects.create(name='Site 1', slug='site-1')
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-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')
|
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 = (
|
devices = (
|
||||||
Device(device_type=devicetype, device_role=devicerole, name='TestDevice1', site=site),
|
Device(device_type=devicetype, role=role, name='TestDevice1', site=site),
|
||||||
Device(device_type=devicetype, device_role=devicerole, name='TestDevice2', site=site),
|
Device(device_type=devicetype, role=role, name='TestDevice2', site=site),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
interfaces = (
|
interfaces = (
|
||||||
@ -2037,21 +2037,21 @@ class VirtualChassisTest(APIViewTestCases.APIViewTestCase):
|
|||||||
site = Site.objects.create(name='Test Site', slug='test-site')
|
site = Site.objects.create(name='Test Site', slug='test-site')
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type', slug='device-type')
|
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 = (
|
devices = (
|
||||||
Device(name='Device 1', 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, device_role=devicerole, site=site),
|
Device(name='Device 2', device_type=devicetype, role=role, site=site),
|
||||||
Device(name='Device 3', device_type=devicetype, device_role=devicerole, site=site),
|
Device(name='Device 3', device_type=devicetype, role=role, site=site),
|
||||||
Device(name='Device 4', device_type=devicetype, device_role=devicerole, site=site),
|
Device(name='Device 4', device_type=devicetype, role=role, site=site),
|
||||||
Device(name='Device 5', device_type=devicetype, device_role=devicerole, site=site),
|
Device(name='Device 5', device_type=devicetype, role=role, site=site),
|
||||||
Device(name='Device 6', device_type=devicetype, device_role=devicerole, site=site),
|
Device(name='Device 6', device_type=devicetype, role=role, site=site),
|
||||||
Device(name='Device 7', device_type=devicetype, device_role=devicerole, site=site),
|
Device(name='Device 7', device_type=devicetype, role=role, site=site),
|
||||||
Device(name='Device 8', device_type=devicetype, device_role=devicerole, site=site),
|
Device(name='Device 8', device_type=devicetype, role=role, site=site),
|
||||||
Device(name='Device 9', device_type=devicetype, device_role=devicerole, site=site),
|
Device(name='Device 9', device_type=devicetype, role=role, site=site),
|
||||||
Device(name='Device 10', device_type=devicetype, device_role=devicerole, site=site),
|
Device(name='Device 10', device_type=devicetype, role=role, site=site),
|
||||||
Device(name='Device 11', device_type=devicetype, device_role=devicerole, site=site),
|
Device(name='Device 11', device_type=devicetype, role=role, site=site),
|
||||||
Device(name='Device 12', device_type=devicetype, device_role=devicerole, site=site),
|
Device(name='Device 12', device_type=devicetype, role=role, site=site),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -2225,12 +2225,12 @@ class VirtualDeviceContextTest(APIViewTestCases.APIViewTestCase):
|
|||||||
site = Site.objects.create(name='Test Site', slug='test-site')
|
site = Site.objects.create(name='Test Site', slug='test-site')
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type', slug='device-type')
|
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 = (
|
devices = (
|
||||||
Device(name='Device 1', 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, device_role=devicerole, site=site),
|
Device(name='Device 2', device_type=devicetype, role=role, site=site),
|
||||||
Device(name='Device 3', device_type=devicetype, device_role=devicerole, site=site),
|
Device(name='Device 3', device_type=devicetype, role=role, site=site),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
|
@ -24,8 +24,8 @@ class CablePathTestCase(TestCase):
|
|||||||
|
|
||||||
manufacturer = Manufacturer.objects.create(name='Generic', slug='generic')
|
manufacturer = Manufacturer.objects.create(name='Generic', slug='generic')
|
||||||
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Test Device')
|
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Test Device')
|
||||||
device_role = DeviceRole.objects.create(name='Device Role', slug='device-role')
|
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')
|
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')
|
cls.powerpanel = PowerPanel.objects.create(site=cls.site, name='Power Panel')
|
||||||
|
|
||||||
|
@ -24,11 +24,11 @@ class DeviceComponentFilterSetTests:
|
|||||||
params = {'device_type': [device_types[0].model, device_types[1].model]}
|
params = {'device_type': [device_types[0].model, device_types[1].model]}
|
||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
def test_device_role(self):
|
def test_role(self):
|
||||||
device_role = DeviceRole.objects.all()[:2]
|
role = DeviceRole.objects.all()[:2]
|
||||||
params = {'device_role_id': [device_role[0].pk, device_role[1].pk]}
|
params = {'role_id': [role[0].pk, role[1].pk]}
|
||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
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)
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
|
||||||
@ -1473,12 +1473,12 @@ class DeviceRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
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 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 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(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):
|
def test_name(self):
|
||||||
params = {'name': ['Device Role 1', 'Device Role 2']}
|
params = {'name': ['Device Role 1', 'Device Role 2']}
|
||||||
@ -1565,12 +1565,12 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
)
|
)
|
||||||
DeviceType.objects.bulk_create(device_types)
|
DeviceType.objects.bulk_create(device_types)
|
||||||
|
|
||||||
device_roles = (
|
roles = (
|
||||||
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
platforms = (
|
platforms = (
|
||||||
Platform(name='Platform 1', slug='platform-1'),
|
Platform(name='Platform 1', slug='platform-1'),
|
||||||
@ -1641,9 +1641,9 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
Tenant.objects.bulk_create(tenants)
|
Tenant.objects.bulk_create(tenants)
|
||||||
|
|
||||||
devices = (
|
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 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], 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 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], 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 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)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -1755,10 +1755,10 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
def test_devicerole(self):
|
def test_devicerole(self):
|
||||||
device_roles = DeviceRole.objects.all()[:2]
|
roles = DeviceRole.objects.all()[:2]
|
||||||
params = {'role_id': [device_roles[0].pk, device_roles[1].pk]}
|
params = {'role_id': [roles[0].pk, roles[1].pk]}
|
||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
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)
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
def test_platform(self):
|
def test_platform(self):
|
||||||
@ -2062,12 +2062,12 @@ class ConsolePortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedF
|
|||||||
|
|
||||||
module_type = ModuleType.objects.create(manufacturer=manufacturer, model='Module Type 1')
|
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 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
locations = (
|
locations = (
|
||||||
Location(name='Location 1', slug='location-1', site=sites[0]),
|
Location(name='Location 1', slug='location-1', site=sites[0]),
|
||||||
@ -2085,10 +2085,10 @@ class ConsolePortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedF
|
|||||||
Rack.objects.bulk_create(racks)
|
Rack.objects.bulk_create(racks)
|
||||||
|
|
||||||
devices = (
|
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 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], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
|
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], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
|
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], device_role=device_roles[0], site=sites[3]), # For cable connections
|
Device(name=None, device_type=device_types[0], role=roles[0], site=sites[3]), # For cable connections
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
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')
|
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 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
locations = (
|
locations = (
|
||||||
Location(name='Location 1', slug='location-1', site=sites[0]),
|
Location(name='Location 1', slug='location-1', site=sites[0]),
|
||||||
@ -2265,10 +2265,10 @@ class ConsoleServerPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeL
|
|||||||
Rack.objects.bulk_create(racks)
|
Rack.objects.bulk_create(racks)
|
||||||
|
|
||||||
devices = (
|
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 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], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
|
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], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
|
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], device_role=device_roles[2], site=sites[3]), # For cable connections
|
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
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')
|
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 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
locations = (
|
locations = (
|
||||||
Location(name='Location 1', slug='location-1', site=sites[0]),
|
Location(name='Location 1', slug='location-1', site=sites[0]),
|
||||||
@ -2445,10 +2445,10 @@ class PowerPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
|
|||||||
Rack.objects.bulk_create(racks)
|
Rack.objects.bulk_create(racks)
|
||||||
|
|
||||||
devices = (
|
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 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], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
|
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], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
|
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], device_role=device_roles[2], site=sites[3]), # For cable connections
|
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
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')
|
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 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
locations = (
|
locations = (
|
||||||
Location(name='Location 1', slug='location-1', site=sites[0]),
|
Location(name='Location 1', slug='location-1', site=sites[0]),
|
||||||
@ -2633,10 +2633,10 @@ class PowerOutletTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedF
|
|||||||
Rack.objects.bulk_create(racks)
|
Rack.objects.bulk_create(racks)
|
||||||
|
|
||||||
devices = (
|
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 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], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
|
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], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
|
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], device_role=device_roles[2], site=sites[3]), # For cable connections
|
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
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')
|
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 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
locations = (
|
locations = (
|
||||||
Location(name='Location 1', slug='location-1', site=sites[0]),
|
Location(name='Location 1', slug='location-1', site=sites[0]),
|
||||||
@ -2817,10 +2817,10 @@ class InterfaceTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
|
|||||||
Rack.objects.bulk_create(racks)
|
Rack.objects.bulk_create(racks)
|
||||||
|
|
||||||
devices = (
|
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 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], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
|
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], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
|
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], device_role=device_roles[2], site=sites[3]), # For cable connections
|
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
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')
|
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 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
locations = (
|
locations = (
|
||||||
Location(name='Location 1', slug='location-1', site=sites[0]),
|
Location(name='Location 1', slug='location-1', site=sites[0]),
|
||||||
@ -3253,10 +3253,10 @@ class FrontPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
|
|||||||
Rack.objects.bulk_create(racks)
|
Rack.objects.bulk_create(racks)
|
||||||
|
|
||||||
devices = (
|
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 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], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
|
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], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
|
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], device_role=device_roles[2], site=sites[3]), # For cable connections
|
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
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')
|
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 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
locations = (
|
locations = (
|
||||||
Location(name='Location 1', slug='location-1', site=sites[0]),
|
Location(name='Location 1', slug='location-1', site=sites[0]),
|
||||||
@ -3442,10 +3442,10 @@ class RearPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilt
|
|||||||
Rack.objects.bulk_create(racks)
|
Rack.objects.bulk_create(racks)
|
||||||
|
|
||||||
devices = (
|
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 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], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
|
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], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
|
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], device_role=device_roles[2], site=sites[3]), # For cable connections
|
Device(name=None, device_type=device_types[2], role=roles[2], site=sites[3]), # For cable connections
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -3600,12 +3600,12 @@ class ModuleBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
|
|||||||
)
|
)
|
||||||
DeviceType.objects.bulk_create(device_types)
|
DeviceType.objects.bulk_create(device_types)
|
||||||
|
|
||||||
device_roles = (
|
roles = (
|
||||||
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
locations = (
|
locations = (
|
||||||
Location(name='Location 1', slug='location-1', site=sites[0]),
|
Location(name='Location 1', slug='location-1', site=sites[0]),
|
||||||
@ -3623,9 +3623,9 @@ class ModuleBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
|
|||||||
Rack.objects.bulk_create(racks)
|
Rack.objects.bulk_create(racks)
|
||||||
|
|
||||||
devices = (
|
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 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], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
|
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], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
|
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)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -3729,12 +3729,12 @@ class DeviceBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
|
|||||||
)
|
)
|
||||||
DeviceType.objects.bulk_create(device_types)
|
DeviceType.objects.bulk_create(device_types)
|
||||||
|
|
||||||
device_roles = (
|
roles = (
|
||||||
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
locations = (
|
locations = (
|
||||||
Location(name='Location 1', slug='location-1', site=sites[0]),
|
Location(name='Location 1', slug='location-1', site=sites[0]),
|
||||||
@ -3752,9 +3752,9 @@ class DeviceBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
|
|||||||
Rack.objects.bulk_create(racks)
|
Rack.objects.bulk_create(racks)
|
||||||
|
|
||||||
devices = (
|
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 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], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
|
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], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
|
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)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -3840,12 +3840,12 @@ class InventoryItemTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
)
|
)
|
||||||
DeviceType.objects.bulk_create(device_types)
|
DeviceType.objects.bulk_create(device_types)
|
||||||
|
|
||||||
device_roles = (
|
roles = (
|
||||||
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
regions = (
|
regions = (
|
||||||
Region(name='Region 1', slug='region-1'),
|
Region(name='Region 1', slug='region-1'),
|
||||||
@ -3886,9 +3886,9 @@ class InventoryItemTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
Rack.objects.bulk_create(racks)
|
Rack.objects.bulk_create(racks)
|
||||||
|
|
||||||
devices = (
|
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 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], device_role=device_roles[1], site=sites[1], location=locations[1], rack=racks[1]),
|
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], device_role=device_roles[2], site=sites[2], location=locations[2], rack=racks[2]),
|
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)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -3986,11 +3986,11 @@ class InventoryItemTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
params = {'device_type': [device_types[0].model, device_types[1].model]}
|
params = {'device_type': [device_types[0].model, device_types[1].model]}
|
||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
||||||
|
|
||||||
def test_device_role(self):
|
def test_role(self):
|
||||||
device_role = DeviceRole.objects.all()[:2]
|
role = DeviceRole.objects.all()[:2]
|
||||||
params = {'device_role_id': [device_role[0].pk, device_role[1].pk]}
|
params = {'role_id': [role[0].pk, role[1].pk]}
|
||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
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)
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
||||||
|
|
||||||
def test_device(self):
|
def test_device(self):
|
||||||
@ -4066,7 +4066,7 @@ class VirtualChassisTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
|
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Model 1', slug='model-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 = (
|
regions = (
|
||||||
Region(name='Region 1', slug='region-1'),
|
Region(name='Region 1', slug='region-1'),
|
||||||
@ -4092,12 +4092,12 @@ class VirtualChassisTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
Site.objects.bulk_create(sites)
|
Site.objects.bulk_create(sites)
|
||||||
|
|
||||||
devices = (
|
devices = (
|
||||||
Device(name='Device 1', device_type=device_type, device_role=device_role, site=sites[0], vc_position=1),
|
Device(name='Device 1', device_type=device_type, role=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 2', device_type=device_type, role=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 3', device_type=device_type, role=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 4', device_type=device_type, role=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 5', device_type=device_type, role=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 6', device_type=device_type, role=role, site=sites[2], vc_position=2),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -4187,15 +4187,15 @@ class CableTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
|
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Model 1', slug='model-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 = (
|
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 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, device_role=device_role, site=sites[0], rack=racks[0], location=locations[0], position=2),
|
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, device_role=device_role, site=sites[1], rack=racks[1], location=locations[1], position=1),
|
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, device_role=device_role, site=sites[1], rack=racks[1], location=locations[1], position=2),
|
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, device_role=device_role, site=sites[2], rack=racks[2], location=locations[2], position=1),
|
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, device_role=device_role, site=sites[2], rack=racks[2], location=locations[2], position=2),
|
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)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -4485,8 +4485,8 @@ class PowerFeedTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
|
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer', slug='manufacturer')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer', slug='manufacturer')
|
||||||
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Model', slug='model')
|
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Model', slug='model')
|
||||||
device_role = DeviceRole.objects.create(name='Device Role', slug='device-role')
|
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])
|
device = Device.objects.create(name='Device', device_type=device_type, role=role, site=sites[0])
|
||||||
power_ports = [
|
power_ports = [
|
||||||
PowerPort(device=device, name='Power Port 1'),
|
PowerPort(device=device, name='Power Port 1'),
|
||||||
PowerPort(device=device, name='Power Port 2'),
|
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')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Model 1', slug='model-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 = (
|
devices = (
|
||||||
Device(name='Device 1', device_type=device_type, device_role=device_role, site=sites[0]),
|
Device(name='Device 1', device_type=device_type, role=role, site=sites[0]),
|
||||||
Device(name='Device 2', device_type=device_type, device_role=device_role, site=sites[1]),
|
Device(name='Device 2', device_type=device_type, role=role, site=sites[1]),
|
||||||
Device(name='Device 3', device_type=device_type, device_role=device_role, site=sites[2]),
|
Device(name='Device 3', device_type=device_type, role=role, site=sites[2]),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
|
@ -22,12 +22,12 @@ class DeviceTestCase(TestCase):
|
|||||||
device_type = DeviceType.objects.create(
|
device_type = DeviceType.objects.create(
|
||||||
manufacturer=manufacturer, model='Device Type 1', slug='device-type-1', u_height=1
|
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'
|
name='Device Role 1', slug='device-role-1', color='ff0000'
|
||||||
)
|
)
|
||||||
Platform.objects.create(name='Platform 1', slug='platform-1')
|
Platform.objects.create(name='Platform 1', slug='platform-1')
|
||||||
Device.objects.create(
|
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_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')
|
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):
|
def test_racked_device(self):
|
||||||
form = DeviceForm(data={
|
form = DeviceForm(data={
|
||||||
'name': 'New Device',
|
'name': 'New Device',
|
||||||
'device_role': DeviceRole.objects.first().pk,
|
'role': DeviceRole.objects.first().pk,
|
||||||
'tenant': None,
|
'tenant': None,
|
||||||
'manufacturer': Manufacturer.objects.first().pk,
|
'manufacturer': Manufacturer.objects.first().pk,
|
||||||
'device_type': DeviceType.objects.first().pk,
|
'device_type': DeviceType.objects.first().pk,
|
||||||
@ -53,7 +53,7 @@ class DeviceTestCase(TestCase):
|
|||||||
def test_racked_device_occupied(self):
|
def test_racked_device_occupied(self):
|
||||||
form = DeviceForm(data={
|
form = DeviceForm(data={
|
||||||
'name': 'test',
|
'name': 'test',
|
||||||
'device_role': DeviceRole.objects.first().pk,
|
'role': DeviceRole.objects.first().pk,
|
||||||
'tenant': None,
|
'tenant': None,
|
||||||
'manufacturer': Manufacturer.objects.first().pk,
|
'manufacturer': Manufacturer.objects.first().pk,
|
||||||
'device_type': DeviceType.objects.first().pk,
|
'device_type': DeviceType.objects.first().pk,
|
||||||
@ -70,7 +70,7 @@ class DeviceTestCase(TestCase):
|
|||||||
def test_non_racked_device(self):
|
def test_non_racked_device(self):
|
||||||
form = DeviceForm(data={
|
form = DeviceForm(data={
|
||||||
'name': 'New Device',
|
'name': 'New Device',
|
||||||
'device_role': DeviceRole.objects.first().pk,
|
'role': DeviceRole.objects.first().pk,
|
||||||
'tenant': None,
|
'tenant': None,
|
||||||
'manufacturer': Manufacturer.objects.first().pk,
|
'manufacturer': Manufacturer.objects.first().pk,
|
||||||
'device_type': DeviceType.objects.first().pk,
|
'device_type': DeviceType.objects.first().pk,
|
||||||
@ -87,7 +87,7 @@ class DeviceTestCase(TestCase):
|
|||||||
def test_non_racked_device_with_face(self):
|
def test_non_racked_device_with_face(self):
|
||||||
form = DeviceForm(data={
|
form = DeviceForm(data={
|
||||||
'name': 'New Device',
|
'name': 'New Device',
|
||||||
'device_role': DeviceRole.objects.first().pk,
|
'role': DeviceRole.objects.first().pk,
|
||||||
'tenant': None,
|
'tenant': None,
|
||||||
'manufacturer': Manufacturer.objects.first().pk,
|
'manufacturer': Manufacturer.objects.first().pk,
|
||||||
'device_type': DeviceType.objects.first().pk,
|
'device_type': DeviceType.objects.first().pk,
|
||||||
@ -103,7 +103,7 @@ class DeviceTestCase(TestCase):
|
|||||||
def test_non_racked_device_with_position(self):
|
def test_non_racked_device_with_position(self):
|
||||||
form = DeviceForm(data={
|
form = DeviceForm(data={
|
||||||
'name': 'New Device',
|
'name': 'New Device',
|
||||||
'device_role': DeviceRole.objects.first().pk,
|
'role': DeviceRole.objects.first().pk,
|
||||||
'tenant': None,
|
'tenant': None,
|
||||||
'manufacturer': Manufacturer.objects.first().pk,
|
'manufacturer': Manufacturer.objects.first().pk,
|
||||||
'device_type': DeviceType.objects.first().pk,
|
'device_type': DeviceType.objects.first().pk,
|
||||||
|
@ -25,7 +25,7 @@ class LocationTestCase(TestCase):
|
|||||||
device_type = DeviceType.objects.create(
|
device_type = DeviceType.objects.create(
|
||||||
manufacturer=manufacturer, model='Device Type 1', slug='device-type-1'
|
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'
|
name='Device Role 1', slug='device-role-1', color='ff0000'
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -45,14 +45,14 @@ class LocationTestCase(TestCase):
|
|||||||
location=location_a1,
|
location=location_a1,
|
||||||
name='Device 1',
|
name='Device 1',
|
||||||
device_type=device_type,
|
device_type=device_type,
|
||||||
device_role=device_role
|
role=role
|
||||||
)
|
)
|
||||||
device2 = Device.objects.create(
|
device2 = Device.objects.create(
|
||||||
site=site_a,
|
site=site_a,
|
||||||
location=location_a2,
|
location=location_a2,
|
||||||
name='Device 2',
|
name='Device 2',
|
||||||
device_type=device_type,
|
device_type=device_type,
|
||||||
device_role=device_role
|
role=role
|
||||||
)
|
)
|
||||||
|
|
||||||
powerpanel1 = PowerPanel.objects.create(site=site_a, location=location_a1, name='Power Panel 1')
|
powerpanel1 = PowerPanel.objects.create(site=site_a, location=location_a1, name='Power Panel 1')
|
||||||
@ -114,7 +114,7 @@ class RackTestCase(TestCase):
|
|||||||
device1 = Device(
|
device1 = Device(
|
||||||
name='Device 1',
|
name='Device 1',
|
||||||
device_type=DeviceType.objects.first(),
|
device_type=DeviceType.objects.first(),
|
||||||
device_role=DeviceRole.objects.first(),
|
role=DeviceRole.objects.first(),
|
||||||
site=site,
|
site=site,
|
||||||
rack=rack,
|
rack=rack,
|
||||||
position=43,
|
position=43,
|
||||||
@ -147,7 +147,7 @@ class RackTestCase(TestCase):
|
|||||||
device1 = Device(
|
device1 = Device(
|
||||||
name='TestSwitch1',
|
name='TestSwitch1',
|
||||||
device_type=DeviceType.objects.first(),
|
device_type=DeviceType.objects.first(),
|
||||||
device_role=DeviceRole.objects.first(),
|
role=DeviceRole.objects.first(),
|
||||||
site=site,
|
site=site,
|
||||||
rack=rack,
|
rack=rack,
|
||||||
position=10.0,
|
position=10.0,
|
||||||
@ -189,7 +189,7 @@ class RackTestCase(TestCase):
|
|||||||
|
|
||||||
Device(
|
Device(
|
||||||
name='Device 1',
|
name='Device 1',
|
||||||
device_role=DeviceRole.objects.first(),
|
role=DeviceRole.objects.first(),
|
||||||
device_type=DeviceType.objects.first(),
|
device_type=DeviceType.objects.first(),
|
||||||
site=site,
|
site=site,
|
||||||
rack=rack
|
rack=rack
|
||||||
@ -202,7 +202,7 @@ class RackTestCase(TestCase):
|
|||||||
rack = Rack.objects.first()
|
rack = Rack.objects.first()
|
||||||
attrs = {
|
attrs = {
|
||||||
'device_type': DeviceType.objects.get(u_height=0.5),
|
'device_type': DeviceType.objects.get(u_height=0.5),
|
||||||
'device_role': DeviceRole.objects.first(),
|
'role': DeviceRole.objects.first(),
|
||||||
'site': Site.objects.first(),
|
'site': Site.objects.first(),
|
||||||
'rack': rack,
|
'rack': rack,
|
||||||
'face': DeviceFaceChoices.FACE_FRONT,
|
'face': DeviceFaceChoices.FACE_FRONT,
|
||||||
@ -228,7 +228,7 @@ class RackTestCase(TestCase):
|
|||||||
site=site_a,
|
site=site_a,
|
||||||
rack=rack1,
|
rack=rack1,
|
||||||
device_type=DeviceType.objects.first(),
|
device_type=DeviceType.objects.first(),
|
||||||
device_role=DeviceRole.objects.first()
|
role=DeviceRole.objects.first()
|
||||||
)
|
)
|
||||||
|
|
||||||
# Move Rack1 to Site B
|
# Move Rack1 to Site B
|
||||||
@ -244,14 +244,16 @@ class DeviceTestCase(TestCase):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
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')
|
manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
|
||||||
device_type = DeviceType.objects.create(
|
device_type = DeviceType.objects.create(
|
||||||
manufacturer=manufacturer, model='Test Device Type 1', slug='test-device-type-1'
|
manufacturer=manufacturer, model='Test Device Type 1', slug='test-device-type-1'
|
||||||
)
|
)
|
||||||
device_role = DeviceRole.objects.create(
|
roles = (
|
||||||
name='Test Device Role 1', slug='test-device-role-1', color='ff0000'
|
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
|
# Create DeviceType components
|
||||||
ConsolePortTemplate(
|
ConsolePortTemplate(
|
||||||
@ -319,7 +321,7 @@ class DeviceTestCase(TestCase):
|
|||||||
d = Device(
|
d = Device(
|
||||||
site=Site.objects.first(),
|
site=Site.objects.first(),
|
||||||
device_type=DeviceType.objects.first(),
|
device_type=DeviceType.objects.first(),
|
||||||
device_role=DeviceRole.objects.first(),
|
role=DeviceRole.objects.first(),
|
||||||
name='Test Device 1'
|
name='Test Device 1'
|
||||||
)
|
)
|
||||||
d.save()
|
d.save()
|
||||||
@ -385,7 +387,7 @@ class DeviceTestCase(TestCase):
|
|||||||
device1 = Device(
|
device1 = Device(
|
||||||
site=Site.objects.first(),
|
site=Site.objects.first(),
|
||||||
device_type=DeviceType.objects.first(),
|
device_type=DeviceType.objects.first(),
|
||||||
device_role=DeviceRole.objects.first(),
|
role=DeviceRole.objects.first(),
|
||||||
name=None
|
name=None
|
||||||
)
|
)
|
||||||
device1.save()
|
device1.save()
|
||||||
@ -393,7 +395,7 @@ class DeviceTestCase(TestCase):
|
|||||||
device2 = Device(
|
device2 = Device(
|
||||||
site=device1.site,
|
site=device1.site,
|
||||||
device_type=device1.device_type,
|
device_type=device1.device_type,
|
||||||
device_role=device1.device_role,
|
role=device1.role,
|
||||||
name=None
|
name=None
|
||||||
)
|
)
|
||||||
device2.full_clean()
|
device2.full_clean()
|
||||||
@ -406,7 +408,7 @@ class DeviceTestCase(TestCase):
|
|||||||
device1 = Device(
|
device1 = Device(
|
||||||
site=Site.objects.first(),
|
site=Site.objects.first(),
|
||||||
device_type=DeviceType.objects.first(),
|
device_type=DeviceType.objects.first(),
|
||||||
device_role=DeviceRole.objects.first(),
|
role=DeviceRole.objects.first(),
|
||||||
name='device 1'
|
name='device 1'
|
||||||
)
|
)
|
||||||
device1.save()
|
device1.save()
|
||||||
@ -414,7 +416,7 @@ class DeviceTestCase(TestCase):
|
|||||||
device2 = Device(
|
device2 = Device(
|
||||||
site=device1.site,
|
site=device1.site,
|
||||||
device_type=device1.device_type,
|
device_type=device1.device_type,
|
||||||
device_role=device1.device_role,
|
role=device1.role,
|
||||||
name='DEVICE 1'
|
name='DEVICE 1'
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -427,7 +429,7 @@ class DeviceTestCase(TestCase):
|
|||||||
device1 = Device(
|
device1 = Device(
|
||||||
site=Site.objects.first(),
|
site=Site.objects.first(),
|
||||||
device_type=DeviceType.objects.first(),
|
device_type=DeviceType.objects.first(),
|
||||||
device_role=DeviceRole.objects.first(),
|
role=DeviceRole.objects.first(),
|
||||||
name='Test Device 1'
|
name='Test Device 1'
|
||||||
)
|
)
|
||||||
device1.save()
|
device1.save()
|
||||||
@ -435,7 +437,7 @@ class DeviceTestCase(TestCase):
|
|||||||
device2 = Device(
|
device2 = Device(
|
||||||
site=device1.site,
|
site=device1.site,
|
||||||
device_type=device1.device_type,
|
device_type=device1.device_type,
|
||||||
device_role=device1.device_role,
|
role=device1.role,
|
||||||
name=device1.name
|
name=device1.name
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -458,6 +460,30 @@ class DeviceTestCase(TestCase):
|
|||||||
device2.full_clean()
|
device2.full_clean()
|
||||||
device2.save()
|
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):
|
class CableTestCase(TestCase):
|
||||||
|
|
||||||
@ -469,14 +495,14 @@ class CableTestCase(TestCase):
|
|||||||
devicetype = DeviceType.objects.create(
|
devicetype = DeviceType.objects.create(
|
||||||
manufacturer=manufacturer, model='Test Device Type 1', slug='test-device-type-1'
|
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'
|
name='Test Device Role 1', slug='test-device-role-1', color='ff0000'
|
||||||
)
|
)
|
||||||
device1 = Device.objects.create(
|
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(
|
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')
|
interface1 = Interface.objects.create(device=device1, name='eth0')
|
||||||
interface2 = Interface.objects.create(device=device2, 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')
|
power_port1 = PowerPort.objects.create(device=device2, name='psu1')
|
||||||
patch_pannel = Device.objects.create(
|
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')
|
rear_port1 = RearPort.objects.create(device=patch_pannel, name='RP1', type='8p8c')
|
||||||
front_port1 = FrontPort.objects.create(
|
front_port1 = FrontPort.objects.create(
|
||||||
@ -626,11 +652,11 @@ class VirtualDeviceContextTestCase(TestCase):
|
|||||||
devicetype = DeviceType.objects.create(
|
devicetype = DeviceType.objects.create(
|
||||||
manufacturer=manufacturer, model='Test Device Type 1', slug='test-device-type-1'
|
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'
|
name='Test Device Role 1', slug='test-device-role-1', color='ff0000'
|
||||||
)
|
)
|
||||||
Device.objects.create(
|
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):
|
def test_vdc_and_interface_creation(self):
|
||||||
|
@ -13,11 +13,11 @@ class NaturalOrderingTestCase(TestCase):
|
|||||||
devicetype = DeviceType.objects.create(
|
devicetype = DeviceType.objects.create(
|
||||||
manufacturer=manufacturer, model='Test Device Type 1', slug='test-device-type-1'
|
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'
|
name='Test Device Role 1', slug='test-device-role-1', color='ff0000'
|
||||||
)
|
)
|
||||||
Device.objects.create(
|
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):
|
def test_interface_ordering_numeric(self):
|
||||||
|
@ -1554,12 +1554,12 @@ class DeviceRoleTestCase(ViewTestCases.OrganizationalObjectViewTestCase):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
|
|
||||||
device_roles = (
|
roles = (
|
||||||
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
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')
|
tags = create_tags('Alpha', 'Bravo', 'Charlie')
|
||||||
|
|
||||||
@ -1581,9 +1581,9 @@ class DeviceRoleTestCase(ViewTestCases.OrganizationalObjectViewTestCase):
|
|||||||
|
|
||||||
cls.csv_update_data = (
|
cls.csv_update_data = (
|
||||||
"id,name,description",
|
"id,name,description",
|
||||||
f"{device_roles[0].pk},Device Role 7,New description7",
|
f"{roles[0].pk},Device Role 7,New description7",
|
||||||
f"{device_roles[1].pk},Device Role 8,New description8",
|
f"{roles[1].pk},Device Role 8,New description8",
|
||||||
f"{device_roles[2].pk},Device Role 9,New description9",
|
f"{roles[2].pk},Device Role 9,New description9",
|
||||||
)
|
)
|
||||||
|
|
||||||
cls.bulk_edit_data = {
|
cls.bulk_edit_data = {
|
||||||
@ -1665,11 +1665,11 @@ class DeviceTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
)
|
)
|
||||||
DeviceType.objects.bulk_create(devicetypes)
|
DeviceType.objects.bulk_create(devicetypes)
|
||||||
|
|
||||||
deviceroles = (
|
roles = (
|
||||||
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(deviceroles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
platforms = (
|
platforms = (
|
||||||
Platform(name='Platform 1', slug='platform-1'),
|
Platform(name='Platform 1', slug='platform-1'),
|
||||||
@ -1678,9 +1678,9 @@ class DeviceTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
Platform.objects.bulk_create(platforms)
|
Platform.objects.bulk_create(platforms)
|
||||||
|
|
||||||
devices = (
|
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 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], device_role=deviceroles[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], device_role=deviceroles[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)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -1690,7 +1690,7 @@ class DeviceTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
|
|
||||||
cls.form_data = {
|
cls.form_data = {
|
||||||
'device_type': devicetypes[1].pk,
|
'device_type': devicetypes[1].pk,
|
||||||
'device_role': deviceroles[1].pk,
|
'role': roles[1].pk,
|
||||||
'tenant': None,
|
'tenant': None,
|
||||||
'platform': platforms[1].pk,
|
'platform': platforms[1].pk,
|
||||||
'name': 'Device X',
|
'name': 'Device X',
|
||||||
@ -1715,7 +1715,7 @@ class DeviceTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
}
|
}
|
||||||
|
|
||||||
cls.csv_data = (
|
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 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 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",
|
"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 = {
|
cls.bulk_edit_data = {
|
||||||
'device_type': devicetypes[1].pk,
|
'device_type': devicetypes[1].pk,
|
||||||
'device_role': deviceroles[1].pk,
|
'role': roles[1].pk,
|
||||||
'tenant': None,
|
'tenant': None,
|
||||||
'platform': platforms[1].pk,
|
'platform': platforms[1].pk,
|
||||||
'serial': '123456',
|
'serial': '123456',
|
||||||
@ -2909,14 +2909,14 @@ class CableTestCase(
|
|||||||
site = Site.objects.create(name='Site 1', slug='site-1')
|
site = Site.objects.create(name='Site 1', slug='site-1')
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
devicetype = DeviceType.objects.create(model='Device Type 1', manufacturer=manufacturer)
|
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')
|
vc = VirtualChassis.objects.create(name='Virtual Chassis')
|
||||||
|
|
||||||
devices = (
|
devices = (
|
||||||
Device(name='Device 1', 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, device_role=devicerole),
|
Device(name='Device 2', site=site, device_type=devicetype, role=role),
|
||||||
Device(name='Device 3', site=site, device_type=devicetype, device_role=devicerole),
|
Device(name='Device 3', site=site, device_type=devicetype, role=role),
|
||||||
Device(name='Device 4', site=site, device_type=devicetype, device_role=devicerole),
|
Device(name='Device 4', site=site, device_type=devicetype, role=role),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -3016,23 +3016,23 @@ class VirtualChassisTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
device_type = DeviceType.objects.create(
|
device_type = DeviceType.objects.create(
|
||||||
manufacturer=manufacturer, model='Device Type 1', slug='device-type-1'
|
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'
|
name='Device Role', slug='device-role-1'
|
||||||
)
|
)
|
||||||
|
|
||||||
devices = (
|
devices = (
|
||||||
Device(device_type=device_type, device_role=device_role, name='Device 1', site=site),
|
Device(device_type=device_type, role=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, role=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, role=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, role=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, role=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, role=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, role=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, role=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, role=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, role=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, role=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 12', site=site),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -3211,11 +3211,11 @@ class PowerFeedTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
device_type = DeviceType.objects.create(
|
device_type = DeviceType.objects.create(
|
||||||
manufacturer=manufacturer, model='Device Type 1', slug='device-type-1'
|
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'
|
name='Device Role', slug='device-role-1'
|
||||||
)
|
)
|
||||||
device = Device.objects.create(
|
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()
|
powerfeed = PowerFeed.objects.first()
|
||||||
|
@ -407,7 +407,7 @@ class SiteView(generic.ObjectView):
|
|||||||
site=instance,
|
site=instance,
|
||||||
rack__isnull=True,
|
rack__isnull=True,
|
||||||
parent_bay__isnull=True
|
parent_bay__isnull=True
|
||||||
).prefetch_related('device_type__manufacturer', 'parent_bay', 'device_role')
|
).prefetch_related('device_type__manufacturer', 'parent_bay', 'role')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'related_models': related_models,
|
'related_models': related_models,
|
||||||
@ -489,7 +489,7 @@ class LocationView(generic.ObjectView):
|
|||||||
location=instance,
|
location=instance,
|
||||||
rack__isnull=True,
|
rack__isnull=True,
|
||||||
parent_bay__isnull=True
|
parent_bay__isnull=True
|
||||||
).prefetch_related('device_type__manufacturer', 'parent_bay', 'device_role')
|
).prefetch_related('device_type__manufacturer', 'parent_bay', 'role')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'related_models': related_models,
|
'related_models': related_models,
|
||||||
@ -1721,7 +1721,7 @@ class InventoryItemTemplateBulkDeleteView(generic.BulkDeleteView):
|
|||||||
|
|
||||||
class DeviceRoleListView(generic.ObjectListView):
|
class DeviceRoleListView(generic.ObjectListView):
|
||||||
queryset = DeviceRole.objects.annotate(
|
queryset = DeviceRole.objects.annotate(
|
||||||
device_count=count_related(Device, 'device_role'),
|
device_count=count_related(Device, 'role'),
|
||||||
vm_count=count_related(VirtualMachine, 'role')
|
vm_count=count_related(VirtualMachine, 'role')
|
||||||
)
|
)
|
||||||
filterset = filtersets.DeviceRoleFilterSet
|
filterset = filtersets.DeviceRoleFilterSet
|
||||||
@ -1735,7 +1735,7 @@ class DeviceRoleView(generic.ObjectView):
|
|||||||
|
|
||||||
def get_extra_context(self, request, instance):
|
def get_extra_context(self, request, instance):
|
||||||
related_models = (
|
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'),
|
(VirtualMachine.objects.restrict(request.user, 'view').filter(role=instance), 'role_id'),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1762,7 +1762,7 @@ class DeviceRoleBulkImportView(generic.BulkImportView):
|
|||||||
|
|
||||||
class DeviceRoleBulkEditView(generic.BulkEditView):
|
class DeviceRoleBulkEditView(generic.BulkEditView):
|
||||||
queryset = DeviceRole.objects.annotate(
|
queryset = DeviceRole.objects.annotate(
|
||||||
device_count=count_related(Device, 'device_role'),
|
device_count=count_related(Device, 'role'),
|
||||||
vm_count=count_related(VirtualMachine, 'role')
|
vm_count=count_related(VirtualMachine, 'role')
|
||||||
)
|
)
|
||||||
filterset = filtersets.DeviceRoleFilterSet
|
filterset = filtersets.DeviceRoleFilterSet
|
||||||
@ -1772,7 +1772,7 @@ class DeviceRoleBulkEditView(generic.BulkEditView):
|
|||||||
|
|
||||||
class DeviceRoleBulkDeleteView(generic.BulkDeleteView):
|
class DeviceRoleBulkDeleteView(generic.BulkDeleteView):
|
||||||
queryset = DeviceRole.objects.annotate(
|
queryset = DeviceRole.objects.annotate(
|
||||||
device_count=count_related(Device, 'device_role'),
|
device_count=count_related(Device, 'role'),
|
||||||
vm_count=count_related(VirtualMachine, 'role')
|
vm_count=count_related(VirtualMachine, 'role')
|
||||||
)
|
)
|
||||||
filterset = filtersets.DeviceRoleFilterSet
|
filterset = filtersets.DeviceRoleFilterSet
|
||||||
|
@ -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
|
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 = obj.role
|
||||||
role = getattr(obj, 'device_role', None) or obj.role
|
|
||||||
|
|
||||||
# Device type and location assignment is relevant only for Devices
|
# Device type and location assignment is relevant only for Devices
|
||||||
device_type = getattr(obj, 'device_type', None)
|
device_type = getattr(obj, 'device_type', None)
|
||||||
@ -121,7 +120,7 @@ class ConfigContextModelQuerySet(RestrictedQuerySet):
|
|||||||
if self.model._meta.model_name == 'device':
|
if self.model._meta.model_name == 'device':
|
||||||
base_query.add((Q(locations=OuterRef('location')) | Q(locations=None)), Q.AND)
|
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(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)
|
base_query.add((Q(sites=OuterRef('site')) | Q(sites=None)), Q.AND)
|
||||||
region_field = 'site__region'
|
region_field = 'site__region'
|
||||||
sitegroup_field = 'site__group'
|
sitegroup_field = 'site__group'
|
||||||
|
@ -579,9 +579,9 @@ class ConfigContextTest(APIViewTestCases.APIViewTestCase):
|
|||||||
"""
|
"""
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-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')
|
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')
|
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)
|
# Test default config contexts (created at test setup)
|
||||||
rendered_context = device.get_config_context()
|
rendered_context = device.get_config_context()
|
||||||
|
@ -44,7 +44,7 @@ class ConfigContextTest(TestCase):
|
|||||||
|
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-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')
|
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')
|
region = Region.objects.create(name='Region')
|
||||||
sitegroup = SiteGroup.objects.create(name='Site Group')
|
sitegroup = SiteGroup.objects.create(name='Site Group')
|
||||||
site = Site.objects.create(name='Site 1', slug='site-1', region=region, group=sitegroup)
|
site = Site.objects.create(name='Site 1', slug='site-1', region=region, group=sitegroup)
|
||||||
@ -58,7 +58,7 @@ class ConfigContextTest(TestCase):
|
|||||||
Device.objects.create(
|
Device.objects.create(
|
||||||
name='Device 1',
|
name='Device 1',
|
||||||
device_type=devicetype,
|
device_type=devicetype,
|
||||||
device_role=devicerole,
|
role=role,
|
||||||
site=site,
|
site=site,
|
||||||
location=location
|
location=location
|
||||||
)
|
)
|
||||||
@ -252,7 +252,7 @@ class ConfigContextTest(TestCase):
|
|||||||
location=location,
|
location=location,
|
||||||
tenant=tenant,
|
tenant=tenant,
|
||||||
platform=platform,
|
platform=platform,
|
||||||
device_role=DeviceRole.objects.first(),
|
role=DeviceRole.objects.first(),
|
||||||
device_type=DeviceType.objects.first()
|
device_type=DeviceType.objects.first()
|
||||||
)
|
)
|
||||||
device.tags.add(tag)
|
device.tags.add(tag)
|
||||||
@ -382,7 +382,7 @@ class ConfigContextTest(TestCase):
|
|||||||
site=site,
|
site=site,
|
||||||
tenant=tenant,
|
tenant=tenant,
|
||||||
platform=platform,
|
platform=platform,
|
||||||
device_role=DeviceRole.objects.first(),
|
role=DeviceRole.objects.first(),
|
||||||
device_type=DeviceType.objects.first()
|
device_type=DeviceType.objects.first()
|
||||||
)
|
)
|
||||||
device.tags.set(tags)
|
device.tags.set(tags)
|
||||||
@ -430,7 +430,7 @@ class ConfigContextTest(TestCase):
|
|||||||
site=site,
|
site=site,
|
||||||
tenant=tenant,
|
tenant=tenant,
|
||||||
platform=platform,
|
platform=platform,
|
||||||
device_role=DeviceRole.objects.first(),
|
role=DeviceRole.objects.first(),
|
||||||
device_type=DeviceType.objects.first()
|
device_type=DeviceType.objects.first()
|
||||||
)
|
)
|
||||||
device.tags.set([tag1, tag2])
|
device.tags.set([tag1, tag2])
|
||||||
|
@ -1009,11 +1009,11 @@ class ServiceTest(APIViewTestCases.APIViewTestCase):
|
|||||||
site = Site.objects.create(name='Site 1', slug='site-1')
|
site = Site.objects.create(name='Site 1', slug='site-1')
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 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 = (
|
devices = (
|
||||||
Device(name='Device 1', 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, device_role=devicerole),
|
Device(name='Device 2', site=site, device_type=devicetype, role=role),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
|
@ -825,12 +825,12 @@ class IPAddressTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
site = Site.objects.create(name='Site 1', slug='site-1')
|
site = Site.objects.create(name='Site 1', slug='site-1')
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 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 = (
|
devices = (
|
||||||
Device(device_type=device_type, name='Device 1', 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, device_role=device_role),
|
Device(device_type=device_type, name='Device 2', site=site, role=role),
|
||||||
Device(device_type=device_type, name='Device 3', site=site, device_role=device_role),
|
Device(device_type=device_type, name='Device 3', site=site, role=role),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -1282,11 +1282,11 @@ class VLANTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
|
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 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 = (
|
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 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, device_role=device_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, device_role=device_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)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
@ -1516,12 +1516,12 @@ class ServiceTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|||||||
site = Site.objects.create(name='Site 1', slug='site-1')
|
site = Site.objects.create(name='Site 1', slug='site-1')
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
device_type = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 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 = (
|
devices = (
|
||||||
Device(device_type=device_type, name='Device 1', 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, device_role=device_role),
|
Device(device_type=device_type, name='Device 2', site=site, role=role),
|
||||||
Device(device_type=device_type, name='Device 3', site=site, device_role=device_role),
|
Device(device_type=device_type, name='Device 3', site=site, role=role),
|
||||||
)
|
)
|
||||||
Device.objects.bulk_create(devices)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
|
@ -549,12 +549,12 @@ class TestL2VPNTermination(TestCase):
|
|||||||
site = Site.objects.create(name='Site 1')
|
site = Site.objects.create(name='Site 1')
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1')
|
||||||
device_type = DeviceType.objects.create(model='Device Type 1', manufacturer=manufacturer)
|
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(
|
device = Device.objects.create(
|
||||||
name='Device 1',
|
name='Device 1',
|
||||||
site=site,
|
site=site,
|
||||||
device_type=device_type,
|
device_type=device_type,
|
||||||
device_role=device_role,
|
role=role,
|
||||||
status='active'
|
status='active'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -909,8 +909,8 @@ class ServiceTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
site = Site.objects.create(name='Site 1', slug='site-1')
|
site = Site.objects.create(name='Site 1', slug='site-1')
|
||||||
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 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')
|
||||||
device = Device.objects.create(name='Device 1', site=site, device_type=devicetype, device_role=devicerole)
|
device = Device.objects.create(name='Device 1', site=site, device_type=devicetype, role=role)
|
||||||
|
|
||||||
services = (
|
services = (
|
||||||
Service(device=device, name='Service 1', protocol=ServiceProtocolChoices.PROTOCOL_TCP, ports=[101]),
|
Service(device=device, name='Service 1', protocol=ServiceProtocolChoices.PROTOCOL_TCP, ports=[101]),
|
||||||
|
@ -202,7 +202,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">{% trans "Role" %}</th>
|
<th scope="row">{% trans "Role" %}</th>
|
||||||
<td>{{ object.device_role|linkify }}</td>
|
<td>{{ object.role|linkify }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">{% trans "Platform" %}</th>
|
<th scope="row">{% trans "Platform" %}</th>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<h5 class="offset-sm-3">{% trans "Device" %}</h5>
|
<h5 class="offset-sm-3">{% trans "Device" %}</h5>
|
||||||
</div>
|
</div>
|
||||||
{% render_field form.name %}
|
{% render_field form.name %}
|
||||||
{% render_field form.device_role %}
|
{% render_field form.role %}
|
||||||
{% render_field form.description %}
|
{% render_field form.description %}
|
||||||
{% render_field form.tags %}
|
{% render_field form.tags %}
|
||||||
</div>
|
</div>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
{% block extra_controls %}
|
{% block extra_controls %}
|
||||||
{% if perms.dcim.add_device %}
|
{% 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" %}
|
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Device" %}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<a href="{% url 'dcim:device' pk=device.pk %}">{{ device }}</a>
|
<a href="{% url 'dcim:device' pk=device.pk %}">{{ device }}</a>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ device.device_role }}</td>
|
<td>{{ device.role }}</td>
|
||||||
<td>{{ device.device_type }}</td>
|
<td>{{ device.device_type }}</td>
|
||||||
{% if device.parent_bay %}
|
{% if device.parent_bay %}
|
||||||
<td>{{ device.parent_bay.device|linkify }}</td>
|
<td>{{ device.parent_bay.device|linkify }}</td>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
{% block extra_controls %}
|
{% block extra_controls %}
|
||||||
{% if perms.dcim.add_device %}
|
{% 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" %}
|
<span class="mdi mdi-plus-thick" aria-hidden="true"></span> {% trans "Add Device" %}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -44,7 +44,7 @@ def create_test_device(name, site=None, **attrs):
|
|||||||
manufacturer, _ = Manufacturer.objects.get_or_create(name='Manufacturer 1', slug='manufacturer-1')
|
manufacturer, _ = Manufacturer.objects.get_or_create(name='Manufacturer 1', slug='manufacturer-1')
|
||||||
devicetype, _ = DeviceType.objects.get_or_create(model='Device Type 1', manufacturer=manufacturer)
|
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')
|
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
|
return device
|
||||||
|
|
||||||
|
@ -360,12 +360,12 @@ class DynamicFilterLookupExpressionTest(TestCase):
|
|||||||
)
|
)
|
||||||
DeviceType.objects.bulk_create(device_types)
|
DeviceType.objects.bulk_create(device_types)
|
||||||
|
|
||||||
device_roles = (
|
roles = (
|
||||||
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
DeviceRole(name='Device Role 3', slug='device-role-3'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
platforms = (
|
platforms = (
|
||||||
Platform(name='Platform 1', slug='platform-1'),
|
Platform(name='Platform 1', slug='platform-1'),
|
||||||
@ -401,9 +401,9 @@ class DynamicFilterLookupExpressionTest(TestCase):
|
|||||||
Rack.objects.bulk_create(racks)
|
Rack.objects.bulk_create(racks)
|
||||||
|
|
||||||
devices = (
|
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 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], 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 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], 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 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)
|
Device.objects.bulk_create(devices)
|
||||||
|
|
||||||
|
@ -180,11 +180,11 @@ class VirtualMachineTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
|
|
||||||
deviceroles = (
|
roles = (
|
||||||
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
DeviceRole(name='Device Role 1', slug='device-role-1'),
|
||||||
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
DeviceRole(name='Device Role 2', slug='device-role-2'),
|
||||||
)
|
)
|
||||||
DeviceRole.objects.bulk_create(deviceroles)
|
DeviceRole.objects.bulk_create(roles)
|
||||||
|
|
||||||
platforms = (
|
platforms = (
|
||||||
Platform(name='Platform 1', slug='platform-1'),
|
Platform(name='Platform 1', slug='platform-1'),
|
||||||
@ -212,9 +212,9 @@ class VirtualMachineTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
virtual_machines = (
|
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 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=deviceroles[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=deviceroles[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)
|
VirtualMachine.objects.bulk_create(virtual_machines)
|
||||||
|
|
||||||
@ -228,7 +228,7 @@ class VirtualMachineTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
'platform': platforms[1].pk,
|
'platform': platforms[1].pk,
|
||||||
'name': 'Virtual Machine X',
|
'name': 'Virtual Machine X',
|
||||||
'status': VirtualMachineStatusChoices.STATUS_STAGED,
|
'status': VirtualMachineStatusChoices.STATUS_STAGED,
|
||||||
'role': deviceroles[1].pk,
|
'role': roles[1].pk,
|
||||||
'primary_ip4': None,
|
'primary_ip4': None,
|
||||||
'primary_ip6': None,
|
'primary_ip6': None,
|
||||||
'vcpus': 4,
|
'vcpus': 4,
|
||||||
@ -260,7 +260,7 @@ class VirtualMachineTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
'tenant': None,
|
'tenant': None,
|
||||||
'platform': platforms[1].pk,
|
'platform': platforms[1].pk,
|
||||||
'status': VirtualMachineStatusChoices.STATUS_STAGED,
|
'status': VirtualMachineStatusChoices.STATUS_STAGED,
|
||||||
'role': deviceroles[1].pk,
|
'role': roles[1].pk,
|
||||||
'vcpus': 8,
|
'vcpus': 8,
|
||||||
'memory': 65535,
|
'memory': 65535,
|
||||||
'disk': 8000,
|
'disk': 8000,
|
||||||
@ -289,12 +289,12 @@ class VMInterfaceTestCase(ViewTestCases.DeviceComponentViewTestCase):
|
|||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
|
|
||||||
site = Site.objects.create(name='Site 1', slug='site-1')
|
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')
|
clustertype = ClusterType.objects.create(name='Cluster Type 1', slug='cluster-type-1')
|
||||||
cluster = Cluster.objects.create(name='Cluster 1', type=clustertype, site=site)
|
cluster = Cluster.objects.create(name='Cluster 1', type=clustertype, site=site)
|
||||||
virtualmachines = (
|
virtualmachines = (
|
||||||
VirtualMachine(name='Virtual Machine 1', 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=devicerole),
|
VirtualMachine(name='Virtual Machine 2', site=site, cluster=cluster, role=role),
|
||||||
)
|
)
|
||||||
VirtualMachine.objects.bulk_create(virtualmachines)
|
VirtualMachine.objects.bulk_create(virtualmachines)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user