Add Views

This commit is contained in:
Cong Ha Minh 2022-05-21 11:49:56 +07:00
parent 3b3247592e
commit 69b4c6beb8
3 changed files with 36 additions and 0 deletions

View File

@ -1135,3 +1135,25 @@ class PowerFeedSerializer(NetBoxModelSerializer, LinkTerminationSerializer, Conn
'connected_endpoint', 'connected_endpoint_type', 'connected_endpoint_reachable', 'tags', 'custom_fields', 'connected_endpoint', 'connected_endpoint_type', 'connected_endpoint_reachable', 'tags', 'custom_fields',
'created', 'last_updated', '_occupied', 'created', 'last_updated', '_occupied',
] ]
class SimpleDeviceSerializer(NetBoxModelSerializer):
tenant = NestedTenantSerializer(required=False, allow_null=True, default=None)
site = NestedSiteSerializer()
location = NestedLocationSerializer(required=False, allow_null=True, default=None)
rack = NestedRackSerializer(required=False, allow_null=True, default=None)
face = ChoiceField(choices=DeviceFaceChoices, allow_blank=True, default='')
position = serializers.IntegerField(allow_null=True, label='Position (U)', min_value=1, default=None)
status = ChoiceField(choices=DeviceStatusChoices, required=False)
primary_ip = NestedIPAddressSerializer(read_only=True)
primary_ip4 = NestedIPAddressSerializer(required=False, allow_null=True)
primary_ip6 = NestedIPAddressSerializer(required=False, allow_null=True)
class Meta:
model = Device
fields = [
'id', 'name', 'tenant', 'site', 'location', 'rack', 'face',
'position', 'status', 'primary_ip', 'primary_ip4', 'primary_ip6'
]

View File

@ -37,6 +37,7 @@ router.register('inventory-item-templates', views.InventoryItemTemplateViewSet)
router.register('device-roles', views.DeviceRoleViewSet) router.register('device-roles', views.DeviceRoleViewSet)
router.register('platforms', views.PlatformViewSet) router.register('platforms', views.PlatformViewSet)
router.register('devices', views.DeviceViewSet) router.register('devices', views.DeviceViewSet)
router.register('simple-devices', views.SimpleDeviceViewSet)
router.register('modules', views.ModuleViewSet) router.register('modules', views.ModuleViewSet)
# Device components # Device components

View File

@ -759,3 +759,16 @@ class ConnectedDeviceViewSet(ViewSet):
# Connected endpoint is none or not an Interface # Connected endpoint is none or not an Interface
raise Http404 raise Http404
#
# Devices/modules
#
class SimpleDeviceViewSet(ConfigContextQuerySetMixin, NetBoxModelViewSet):
queryset = Device.objects.prefetch_related(
'device_type__manufacturer', 'device_role', 'tenant', 'platform', 'site', 'location', 'rack', 'parent_bay',
'virtual_chassis__master', 'primary_ip4__nat_outside', 'primary_ip6__nat_outside', 'tags',
)
filterset_class = filtersets.DeviceFilterSet
serializer_class = serializers.SimpleDeviceSerializer