mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Removed circuit-specific endpoint for CircuitTerminations
This commit is contained in:
@ -57,19 +57,6 @@ class NestedCircuitTypeSerializer(serializers.ModelSerializer):
|
|||||||
fields = ['id', 'url', 'name', 'slug']
|
fields = ['id', 'url', 'name', 'slug']
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Circuit Terminations
|
|
||||||
#
|
|
||||||
|
|
||||||
class CircuitTerminationSerializer(serializers.ModelSerializer):
|
|
||||||
site = NestedSiteSerializer()
|
|
||||||
interface = InterfaceSerializer()
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = CircuitTermination
|
|
||||||
fields = ['id', 'term_side', 'site', 'interface', 'port_speed', 'upstream_speed', 'xconnect_id', 'pp_info']
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Circuits
|
# Circuits
|
||||||
#
|
#
|
||||||
@ -103,3 +90,28 @@ class WritableCircuitSerializer(serializers.ModelSerializer):
|
|||||||
fields = [
|
fields = [
|
||||||
'id', 'cid', 'provider', 'type', 'tenant', 'install_date', 'commit_rate', 'description', 'comments',
|
'id', 'cid', 'provider', 'type', 'tenant', 'install_date', 'commit_rate', 'description', 'comments',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Circuit Terminations
|
||||||
|
#
|
||||||
|
|
||||||
|
class CircuitTerminationSerializer(serializers.ModelSerializer):
|
||||||
|
circuit = NestedCircuitSerializer()
|
||||||
|
site = NestedSiteSerializer()
|
||||||
|
interface = InterfaceSerializer()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = CircuitTermination
|
||||||
|
fields = [
|
||||||
|
'id', 'circuit', 'term_side', 'site', 'interface', 'port_speed', 'upstream_speed', 'xconnect_id', 'pp_info',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class WritableCircuitTerminationSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = CircuitTermination
|
||||||
|
fields = [
|
||||||
|
'id', 'circuit', 'term_side', 'site', 'interface', 'port_speed', 'upstream_speed', 'xconnect_id', 'pp_info',
|
||||||
|
]
|
||||||
|
@ -15,7 +15,4 @@ urlpatterns = [
|
|||||||
|
|
||||||
url(r'', include(router.urls)),
|
url(r'', include(router.urls)),
|
||||||
|
|
||||||
# Circuits
|
|
||||||
url(r'^circuits/(?P<pk>\d+)/terminations/$', views.NestedCircuitTerminationViewSet.as_view({'get': 'list'})),
|
|
||||||
|
|
||||||
]
|
]
|
||||||
|
@ -1,15 +1,11 @@
|
|||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
|
|
||||||
from rest_framework.decorators import detail_route
|
from rest_framework.decorators import detail_route
|
||||||
from rest_framework.mixins import (
|
|
||||||
CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin, UpdateModelMixin,
|
|
||||||
)
|
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
from rest_framework.viewsets import ModelViewSet
|
||||||
|
|
||||||
|
from circuits import filters
|
||||||
from circuits.models import Provider, CircuitTermination, CircuitType, Circuit
|
from circuits.models import Provider, CircuitTermination, CircuitType, Circuit
|
||||||
from circuits.filters import CircuitFilter
|
|
||||||
|
|
||||||
from extras.models import Graph, GRAPH_TYPE_PROVIDER
|
from extras.models import Graph, GRAPH_TYPE_PROVIDER
|
||||||
from extras.api.serializers import GraphSerializer
|
from extras.api.serializers import GraphSerializer
|
||||||
from extras.api.views import CustomFieldModelViewSet
|
from extras.api.views import CustomFieldModelViewSet
|
||||||
@ -25,6 +21,7 @@ class ProviderViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
|
|||||||
queryset = Provider.objects.all()
|
queryset = Provider.objects.all()
|
||||||
serializer_class = serializers.ProviderSerializer
|
serializer_class = serializers.ProviderSerializer
|
||||||
write_serializer_class = serializers.WritableProviderSerializer
|
write_serializer_class = serializers.WritableProviderSerializer
|
||||||
|
filter_class = filters.ProviderFilter
|
||||||
|
|
||||||
@detail_route()
|
@detail_route()
|
||||||
def graphs(self, request, pk=None):
|
def graphs(self, request, pk=None):
|
||||||
@ -51,22 +48,15 @@ class CircuitViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
|
|||||||
queryset = Circuit.objects.select_related('type', 'tenant', 'provider')
|
queryset = Circuit.objects.select_related('type', 'tenant', 'provider')
|
||||||
serializer_class = serializers.CircuitSerializer
|
serializer_class = serializers.CircuitSerializer
|
||||||
write_serializer_class = serializers.WritableCircuitSerializer
|
write_serializer_class = serializers.WritableCircuitSerializer
|
||||||
filter_class = CircuitFilter
|
filter_class = filters.CircuitFilter
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Circuit Terminations
|
# Circuit Terminations
|
||||||
#
|
#
|
||||||
|
|
||||||
class CircuitTerminationViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, WritableSerializerMixin,
|
class CircuitTerminationViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
GenericViewSet):
|
queryset = CircuitTermination.objects.select_related('circuit', 'site', 'interface__device')
|
||||||
queryset = CircuitTermination.objects.select_related('site', 'interface__device')
|
|
||||||
serializer_class = serializers.CircuitTerminationSerializer
|
serializer_class = serializers.CircuitTerminationSerializer
|
||||||
|
write_serializer_class = serializers.WritableCircuitTerminationSerializer
|
||||||
|
filter_class = filters.CircuitTerminationFilter
|
||||||
class NestedCircuitTerminationViewSet(CreateModelMixin, ListModelMixin ,WritableSerializerMixin, GenericViewSet):
|
|
||||||
serializer_class = serializers.CircuitTerminationSerializer
|
|
||||||
|
|
||||||
def get_queryset(self):
|
|
||||||
circuit = get_object_or_404(Circuit, pk=self.kwargs['pk'])
|
|
||||||
return CircuitTermination.objects.filter(circuit=circuit).select_related('site', 'interface__device')
|
|
||||||
|
@ -6,8 +6,7 @@ from dcim.models import Site
|
|||||||
from extras.filters import CustomFieldFilterSet
|
from extras.filters import CustomFieldFilterSet
|
||||||
from tenancy.models import Tenant
|
from tenancy.models import Tenant
|
||||||
from utilities.filters import NullableModelMultipleChoiceFilter
|
from utilities.filters import NullableModelMultipleChoiceFilter
|
||||||
|
from .models import Provider, Circuit, CircuitTermination, CircuitType
|
||||||
from .models import Provider, Circuit, CircuitType
|
|
||||||
|
|
||||||
|
|
||||||
class ProviderFilter(CustomFieldFilterSet, django_filters.FilterSet):
|
class ProviderFilter(CustomFieldFilterSet, django_filters.FilterSet):
|
||||||
@ -101,3 +100,15 @@ class CircuitFilter(CustomFieldFilterSet, django_filters.FilterSet):
|
|||||||
Q(description__icontains=value) |
|
Q(description__icontains=value) |
|
||||||
Q(comments__icontains=value)
|
Q(comments__icontains=value)
|
||||||
).distinct()
|
).distinct()
|
||||||
|
|
||||||
|
|
||||||
|
class CircuitTerminationFilter(django_filters.FilterSet):
|
||||||
|
circuit_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
name='circuit',
|
||||||
|
queryset=Circuit.objects.all(),
|
||||||
|
label='Circuit',
|
||||||
|
)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = CircuitTermination
|
||||||
|
fields = ['term_side', 'site']
|
||||||
|
Reference in New Issue
Block a user