mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-20 19:19:22 -06:00
Fixes #3356: Correct Swagger schema specification for the available prefixes/IPs API endpoints
This commit is contained in:
parent
b362c6a967
commit
cc721efe97
@ -9,6 +9,7 @@
|
|||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
* [#2994](https://github.com/netbox-community/netbox/issues/2994) - Prevent modifying termination points of existing cable to ensure end-to-end path integrity
|
* [#2994](https://github.com/netbox-community/netbox/issues/2994) - Prevent modifying termination points of existing cable to ensure end-to-end path integrity
|
||||||
|
* [#3356](https://github.com/netbox-community/netbox/issues/3356) - Correct Swagger schema specification for the available prefixes/IPs API endpoints
|
||||||
* [#4361](https://github.com/netbox-community/netbox/issues/4361) - Fix Type of `connection_state` in Swagger schema
|
* [#4361](https://github.com/netbox-community/netbox/issues/4361) - Fix Type of `connection_state` in Swagger schema
|
||||||
* [#4388](https://github.com/netbox-community/netbox/issues/4388) - Fix detection of connected endpoints when connecting rear ports
|
* [#4388](https://github.com/netbox-community/netbox/issues/4388) - Fix detection of connected endpoints when connecting rear ports
|
||||||
* [#4489](https://github.com/netbox-community/netbox/issues/4489) - Fix display of parent/child role on device type view
|
* [#4489](https://github.com/netbox-community/netbox/issues/4489) - Fix display of parent/child role on device type view
|
||||||
|
@ -183,6 +183,10 @@ class AvailablePrefixSerializer(serializers.Serializer):
|
|||||||
"""
|
"""
|
||||||
Representation of a prefix which does not exist in the database.
|
Representation of a prefix which does not exist in the database.
|
||||||
"""
|
"""
|
||||||
|
family = serializers.IntegerField(read_only=True)
|
||||||
|
prefix = serializers.CharField(read_only=True)
|
||||||
|
vrf = NestedVRFSerializer(read_only=True)
|
||||||
|
|
||||||
def to_representation(self, instance):
|
def to_representation(self, instance):
|
||||||
if self.context.get('vrf'):
|
if self.context.get('vrf'):
|
||||||
vrf = NestedVRFSerializer(self.context['vrf'], context={'request': self.context['request']}).data
|
vrf = NestedVRFSerializer(self.context['vrf'], context={'request': self.context['request']}).data
|
||||||
@ -246,6 +250,10 @@ class AvailableIPSerializer(serializers.Serializer):
|
|||||||
"""
|
"""
|
||||||
Representation of an IP address which does not exist in the database.
|
Representation of an IP address which does not exist in the database.
|
||||||
"""
|
"""
|
||||||
|
family = serializers.IntegerField(read_only=True)
|
||||||
|
address = serializers.CharField(read_only=True)
|
||||||
|
vrf = NestedVRFSerializer(read_only=True)
|
||||||
|
|
||||||
def to_representation(self, instance):
|
def to_representation(self, instance):
|
||||||
if self.context.get('vrf'):
|
if self.context.get('vrf'):
|
||||||
vrf = NestedVRFSerializer(self.context['vrf'], context={'request': self.context['request']}).data
|
vrf = NestedVRFSerializer(self.context['vrf'], context={'request': self.context['request']}).data
|
||||||
|
@ -2,6 +2,7 @@ from django.conf import settings
|
|||||||
from django.db.models import Count
|
from django.db.models import Count
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django_pglocks import advisory_lock
|
from django_pglocks import advisory_lock
|
||||||
|
from drf_yasg.utils import swagger_auto_schema
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from rest_framework.exceptions import PermissionDenied
|
from rest_framework.exceptions import PermissionDenied
|
||||||
@ -73,6 +74,12 @@ class PrefixViewSet(CustomFieldModelViewSet):
|
|||||||
serializer_class = serializers.PrefixSerializer
|
serializer_class = serializers.PrefixSerializer
|
||||||
filterset_class = filters.PrefixFilterSet
|
filterset_class = filters.PrefixFilterSet
|
||||||
|
|
||||||
|
@swagger_auto_schema(
|
||||||
|
methods=['get', 'post'],
|
||||||
|
responses={
|
||||||
|
200: serializers.AvailablePrefixSerializer(many=True),
|
||||||
|
}
|
||||||
|
)
|
||||||
@action(detail=True, url_path='available-prefixes', methods=['get', 'post'])
|
@action(detail=True, url_path='available-prefixes', methods=['get', 'post'])
|
||||||
@advisory_lock(ADVISORY_LOCK_KEYS['available-prefixes'])
|
@advisory_lock(ADVISORY_LOCK_KEYS['available-prefixes'])
|
||||||
def available_prefixes(self, request, pk=None):
|
def available_prefixes(self, request, pk=None):
|
||||||
@ -151,6 +158,12 @@ class PrefixViewSet(CustomFieldModelViewSet):
|
|||||||
|
|
||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
|
|
||||||
|
@swagger_auto_schema(
|
||||||
|
methods=['get', 'post'],
|
||||||
|
responses={
|
||||||
|
200: serializers.AvailableIPSerializer(many=True),
|
||||||
|
}
|
||||||
|
)
|
||||||
@action(detail=True, url_path='available-ips', methods=['get', 'post'])
|
@action(detail=True, url_path='available-ips', methods=['get', 'post'])
|
||||||
@advisory_lock(ADVISORY_LOCK_KEYS['available-ips'])
|
@advisory_lock(ADVISORY_LOCK_KEYS['available-ips'])
|
||||||
def available_ips(self, request, pk=None):
|
def available_ips(self, request, pk=None):
|
||||||
|
Loading…
Reference in New Issue
Block a user