mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-19 17:59:11 -06:00
Added Service serializers
This commit is contained in:
parent
c0dac1383d
commit
0cf029edd4
@ -4,6 +4,7 @@ from rest_framework import routers
|
|||||||
|
|
||||||
from extras.models import GRAPH_TYPE_INTERFACE, GRAPH_TYPE_SITE
|
from extras.models import GRAPH_TYPE_INTERFACE, GRAPH_TYPE_SITE
|
||||||
from extras.api.views import GraphListView, TopologyMapView
|
from extras.api.views import GraphListView, TopologyMapView
|
||||||
|
from ipam.api.views import ChildServiceViewSet
|
||||||
|
|
||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
@ -37,12 +38,12 @@ urlpatterns = [
|
|||||||
url(r'^devices/(?P<pk>\d+)/lldp-neighbors/$', views.LLDPNeighborsView.as_view(), name='device_lldp-neighbors'),
|
url(r'^devices/(?P<pk>\d+)/lldp-neighbors/$', views.LLDPNeighborsView.as_view(), name='device_lldp-neighbors'),
|
||||||
url(r'^devices/(?P<pk>\d+)/console-ports/$', views.ChildConsolePortViewSet.as_view({'get': 'list'}), name='consoleport-list'),
|
url(r'^devices/(?P<pk>\d+)/console-ports/$', views.ChildConsolePortViewSet.as_view({'get': 'list'}), name='consoleport-list'),
|
||||||
url(r'^devices/(?P<pk>\d+)/console-server-ports/$', views.ChildConsoleServerPortViewSet.as_view({'get': 'list'}), name='consoleserverport-list'),
|
url(r'^devices/(?P<pk>\d+)/console-server-ports/$', views.ChildConsoleServerPortViewSet.as_view({'get': 'list'}), name='consoleserverport-list'),
|
||||||
url(r'^devices/(?P<pk>\d+)/power-ports/$', views.NestedPowerPortViewSet.as_view({'get': 'list'}), name='powerport-list'),
|
url(r'^devices/(?P<pk>\d+)/power-ports/$', views.ChildPowerPortViewSet.as_view({'get': 'list'}), name='powerport-list'),
|
||||||
url(r'^devices/(?P<pk>\d+)/power-outlets/$', views.NestedPowerOutletViewSet.as_view({'get': 'list'}), name='poweroutlet-list'),
|
url(r'^devices/(?P<pk>\d+)/power-outlets/$', views.ChildPowerOutletViewSet.as_view({'get': 'list'}), name='poweroutlet-list'),
|
||||||
url(r'^devices/(?P<pk>\d+)/interfaces/$', views.NestedInterfaceViewSet.as_view({'get': 'list'}), name='interface-list'),
|
url(r'^devices/(?P<pk>\d+)/interfaces/$', views.ChildInterfaceViewSet.as_view({'get': 'list'}), name='interface-list'),
|
||||||
url(r'^devices/(?P<pk>\d+)/device-bays/$', views.NestedDeviceBayViewSet.as_view({'get': 'list'}), name='devicebay-list'),
|
url(r'^devices/(?P<pk>\d+)/device-bays/$', views.ChildDeviceBayViewSet.as_view({'get': 'list'}), name='devicebay-list'),
|
||||||
url(r'^devices/(?P<pk>\d+)/modules/$', views.NestedModuleViewSet.as_view({'get': 'list'}), name='module-list'),
|
url(r'^devices/(?P<pk>\d+)/modules/$', views.ChildModuleViewSet.as_view({'get': 'list'}), name='module-list'),
|
||||||
# TODO: Services
|
url(r'^devices/(?P<pk>\d+)/services/$', ChildServiceViewSet.as_view({'get': 'list'}), name='service-list'),
|
||||||
|
|
||||||
# Console ports
|
# Console ports
|
||||||
url(r'^console-ports/(?P<pk>\d+)/$', views.ConsolePortViewSet.as_view({'get': 'retrieve'}), name='consoleport-detail'),
|
url(r'^console-ports/(?P<pk>\d+)/$', views.ConsolePortViewSet.as_view({'get': 'retrieve'}), name='consoleport-detail'),
|
||||||
|
@ -151,7 +151,7 @@ class ConsolePortViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin
|
|||||||
|
|
||||||
|
|
||||||
class ChildConsolePortViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
class ChildConsolePortViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
||||||
serializer_class = serializers.ChildConsoleServerPortSerializer
|
serializer_class = serializers.ChildConsolePortSerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
||||||
@ -186,7 +186,7 @@ class PowerPortViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin,
|
|||||||
serializer_class = serializers.PowerPortSerializer
|
serializer_class = serializers.PowerPortSerializer
|
||||||
|
|
||||||
|
|
||||||
class NestedPowerPortViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
class ChildPowerPortViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
||||||
serializer_class = serializers.ChildPowerPortSerializer
|
serializer_class = serializers.ChildPowerPortSerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
@ -204,7 +204,7 @@ class PowerOutletViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin
|
|||||||
serializer_class = serializers.PowerOutletSerializer
|
serializer_class = serializers.PowerOutletSerializer
|
||||||
|
|
||||||
|
|
||||||
class NestedPowerOutletViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
class ChildPowerOutletViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
||||||
serializer_class = serializers.ChildPowerOutletSerializer
|
serializer_class = serializers.ChildPowerOutletSerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
@ -222,7 +222,7 @@ class InterfaceViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin,
|
|||||||
serializer_class = serializers.InterfaceDetailSerializer
|
serializer_class = serializers.InterfaceDetailSerializer
|
||||||
|
|
||||||
|
|
||||||
class NestedInterfaceViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
class ChildInterfaceViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
||||||
serializer_class = serializers.ChildInterfaceSerializer
|
serializer_class = serializers.ChildInterfaceSerializer
|
||||||
filter_class = filters.InterfaceFilter
|
filter_class = filters.InterfaceFilter
|
||||||
|
|
||||||
@ -242,7 +242,7 @@ class DeviceBayViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin,
|
|||||||
serializer_class = serializers.DeviceBaySerializer
|
serializer_class = serializers.DeviceBaySerializer
|
||||||
|
|
||||||
|
|
||||||
class NestedDeviceBayViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
class ChildDeviceBayViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
||||||
serializer_class = serializers.ChildDeviceBaySerializer
|
serializer_class = serializers.ChildDeviceBaySerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
@ -259,7 +259,7 @@ class ModuleViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, Wri
|
|||||||
serializer_class = serializers.ModuleSerializer
|
serializer_class = serializers.ModuleSerializer
|
||||||
|
|
||||||
|
|
||||||
class NestedModuleViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
class ChildModuleViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
||||||
serializer_class = serializers.ChildModuleSerializer
|
serializer_class = serializers.ChildModuleSerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
|
@ -189,3 +189,11 @@ class ServiceSerializer(serializers.ModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Service
|
model = Service
|
||||||
fields = ['id', 'device', 'name', 'port', 'protocol', 'ipaddresses', 'description']
|
fields = ['id', 'device', 'name', 'port', 'protocol', 'ipaddresses', 'description']
|
||||||
|
|
||||||
|
|
||||||
|
class ChildServiceSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
|
ipaddresses = NestedIPAddressSerializer(many=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Service
|
||||||
|
fields = ['id', 'url', 'name', 'port', 'protocol', 'ipaddresses', 'description']
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
from rest_framework.viewsets import ModelViewSet
|
from django.shortcuts import get_object_or_404
|
||||||
|
|
||||||
|
from rest_framework.mixins import (
|
||||||
|
CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin, UpdateModelMixin,
|
||||||
|
)
|
||||||
|
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
||||||
|
|
||||||
|
from dcim.models import Device
|
||||||
from ipam.models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF
|
from ipam.models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF
|
||||||
from ipam import filters
|
from ipam import filters
|
||||||
|
|
||||||
from extras.api.views import CustomFieldModelViewSet
|
from extras.api.views import CustomFieldModelViewSet
|
||||||
from utilities.api import WritableSerializerMixin
|
from utilities.api import WritableSerializerMixin
|
||||||
from . import serializers
|
from . import serializers
|
||||||
@ -90,7 +95,14 @@ class VLANViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
|
|||||||
# Services
|
# Services
|
||||||
#
|
#
|
||||||
|
|
||||||
class ServiceViewSet(WritableSerializerMixin, ModelViewSet):
|
class ServiceViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, WritableSerializerMixin, GenericViewSet):
|
||||||
queryset = Service.objects.select_related('device').prefetch_related('ipaddresses')
|
queryset = Service.objects.select_related('device')
|
||||||
serializer_class = serializers.ServiceSerializer
|
serializer_class = serializers.ServiceSerializer
|
||||||
filter_class = filters.ServiceFilter
|
|
||||||
|
|
||||||
|
class ChildServiceViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
|
||||||
|
serializer_class = serializers.ChildServiceSerializer
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
||||||
|
return Service.objects.filter(device=device).select_related('device')
|
||||||
|
Loading…
Reference in New Issue
Block a user