mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-18 05:28:16 -06:00
Add Views
This commit is contained in:
parent
3b3247592e
commit
69b4c6beb8
@ -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'
|
||||||
|
]
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user