Просмотр исходного кода

Merge pull request #3860 from hSaria/1982-swagger-napalm

Fixes #1982: Swagger NAPALM documentation
Jeremy Stretch 6 лет назад
Родитель
Сommit
c66dca399b
3 измененных файлов с 16 добавлено и 0 удалено
  1. 1 0
      docs/release-notes/version-2.6.md
  2. 4 0
      netbox/dcim/api/serializers.py
  3. 11 0
      netbox/dcim/api/views.py

+ 1 - 0
docs/release-notes/version-2.6.md

@@ -2,6 +2,7 @@
 
 ## Enhancements
 
+* [#1982](https://github.com/netbox-community/netbox/issues/1982) - Improved NAPALM method documentation in Swagger
 * [#2050](https://github.com/netbox-community/netbox/issues/2050) - Preview image attachments when hovering the link
 * [#2589](https://github.com/netbox-community/netbox/issues/2589) - Toggle for showing available prefixes/ip addresses
 * [#3090](https://github.com/netbox-community/netbox/issues/3090) - Add filter field for device interfaces

+ 4 - 0
netbox/dcim/api/serializers.py

@@ -370,6 +370,10 @@ class DeviceWithConfigContextSerializer(DeviceSerializer):
         return obj.get_config_context()
 
 
+class DeviceNAPALMSerializer(serializers.Serializer):
+    method = serializers.DictField()
+
+
 class ConsoleServerPortSerializer(TaggitSerializer, ConnectedEndpointSerializer):
     device = NestedDeviceSerializer()
     cable = NestedCableSerializer(read_only=True)

+ 11 - 0
netbox/dcim/api/views.py

@@ -358,6 +358,17 @@ class DeviceViewSet(CustomFieldModelViewSet):
 
         return Response(serializer.data)
 
+    @swagger_auto_schema(
+        manual_parameters=[
+            Parameter(
+                name='method',
+                in_='query',
+                required=True,
+                type=openapi.TYPE_STRING
+            )
+        ],
+        responses={'200': serializers.DeviceNAPALMSerializer}
+    )
     @action(detail=True, url_path='napalm')
     def napalm(self, request, pk):
         """