Browse Source

Namespaced all API URLs

Jeremy Stretch 8 years ago
parent
commit
1fcc2b0029

+ 3 - 0
netbox/circuits/api/serializers.py

@@ -21,6 +21,7 @@ class ProviderSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedProviderSerializer(serializers.HyperlinkedModelSerializer):
 class NestedProviderSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='circuits-api:provider-detail')
 
 
     class Meta:
     class Meta:
         model = Provider
         model = Provider
@@ -39,6 +40,7 @@ class CircuitTypeSerializer(serializers.ModelSerializer):
 
 
 
 
 class NestedCircuitTypeSerializer(serializers.HyperlinkedModelSerializer):
 class NestedCircuitTypeSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='circuits-api:circuittype-detail')
 
 
     class Meta:
     class Meta:
         model = CircuitType
         model = CircuitType
@@ -76,6 +78,7 @@ class CircuitSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedCircuitSerializer(serializers.HyperlinkedModelSerializer):
 class NestedCircuitSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='circuits-api:circuit-detail')
 
 
     class Meta:
     class Meta:
         model = Circuit
         model = Circuit

+ 22 - 2
netbox/dcim/api/serializers.py

@@ -28,6 +28,7 @@ class SiteSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedSiteSerializer(serializers.HyperlinkedModelSerializer):
 class NestedSiteSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:site-detail')
 
 
     class Meta:
     class Meta:
         model = Site
         model = Site
@@ -47,6 +48,7 @@ class RackGroupSerializer(serializers.ModelSerializer):
 
 
 
 
 class NestedRackGroupSerializer(serializers.HyperlinkedModelSerializer):
 class NestedRackGroupSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:rackgroup-detail')
 
 
     class Meta:
     class Meta:
         model = RackGroup
         model = RackGroup
@@ -65,6 +67,7 @@ class RackRoleSerializer(serializers.ModelSerializer):
 
 
 
 
 class NestedRackRoleSerializer(serializers.HyperlinkedModelSerializer):
 class NestedRackRoleSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:rackrole-detail')
 
 
     class Meta:
     class Meta:
         model = RackRole
         model = RackRole
@@ -91,6 +94,7 @@ class RackSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedRackSerializer(serializers.HyperlinkedModelSerializer):
 class NestedRackSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:rack-detail')
 
 
     class Meta:
     class Meta:
         model = Rack
         model = Rack
@@ -132,6 +136,7 @@ class ManufacturerSerializer(serializers.ModelSerializer):
 
 
 
 
 class NestedManufacturerSerializer(serializers.HyperlinkedModelSerializer):
 class NestedManufacturerSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:manufacturer-detail')
 
 
     class Meta:
     class Meta:
         model = Manufacturer
         model = Manufacturer
@@ -164,6 +169,8 @@ class DeviceTypeSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedDeviceTypeSerializer(serializers.HyperlinkedModelSerializer):
 class NestedDeviceTypeSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:devicetype-detail')
+    manufacturer = NestedManufacturerSerializer()
 
 
     class Meta:
     class Meta:
         model = DeviceType
         model = DeviceType
@@ -224,6 +231,7 @@ class DeviceRoleSerializer(serializers.ModelSerializer):
 
 
 
 
 class NestedDeviceRoleSerializer(serializers.HyperlinkedModelSerializer):
 class NestedDeviceRoleSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:devicerole-detail')
 
 
     class Meta:
     class Meta:
         model = DeviceRole
         model = DeviceRole
@@ -242,6 +250,7 @@ class PlatformSerializer(serializers.ModelSerializer):
 
 
 
 
 class NestedPlatformSerializer(serializers.HyperlinkedModelSerializer):
 class NestedPlatformSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:platform-detail')
 
 
     class Meta:
     class Meta:
         model = Platform
         model = Platform
@@ -254,6 +263,7 @@ class NestedPlatformSerializer(serializers.HyperlinkedModelSerializer):
 
 
 # Cannot import ipam.api.NestedIPAddressSerializer due to circular dependency
 # Cannot import ipam.api.NestedIPAddressSerializer due to circular dependency
 class DeviceIPAddressSerializer(serializers.HyperlinkedModelSerializer):
 class DeviceIPAddressSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='ipam-api:ipaddress-detail')
 
 
     class Meta:
     class Meta:
         model = IPAddress
         model = IPAddress
@@ -295,6 +305,7 @@ class DeviceSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedDeviceSerializer(serializers.HyperlinkedModelSerializer):
 class NestedDeviceSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:device-detail')
 
 
     class Meta:
     class Meta:
         model = Device
         model = Device
@@ -314,6 +325,7 @@ class ConsoleServerPortSerializer(serializers.ModelSerializer):
 
 
 
 
 class DeviceConsoleServerPortSerializer(serializers.HyperlinkedModelSerializer):
 class DeviceConsoleServerPortSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:consoleserverport-detail')
 
 
     class Meta:
     class Meta:
         model = ConsoleServerPort
         model = ConsoleServerPort
@@ -334,6 +346,7 @@ class ConsolePortSerializer(serializers.ModelSerializer):
 
 
 
 
 class DeviceConsolePortSerializer(serializers.HyperlinkedModelSerializer):
 class DeviceConsolePortSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:consoleport-detail')
 
 
     class Meta:
     class Meta:
         model = ConsolePort
         model = ConsolePort
@@ -353,6 +366,7 @@ class PowerOutletSerializer(serializers.ModelSerializer):
 
 
 
 
 class DevicePowerOutletSerializer(serializers.HyperlinkedModelSerializer):
 class DevicePowerOutletSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:poweroutlet-detail')
 
 
     class Meta:
     class Meta:
         model = PowerOutlet
         model = PowerOutlet
@@ -373,6 +387,7 @@ class PowerPortSerializer(serializers.ModelSerializer):
 
 
 
 
 class DevicePowerPortSerializer(serializers.HyperlinkedModelSerializer):
 class DevicePowerPortSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:powerport-detail')
 
 
     class Meta:
     class Meta:
         model = PowerPort
         model = PowerPort
@@ -408,6 +423,7 @@ class InterfaceSerializer(serializers.ModelSerializer):
 
 
 
 
 class PeerInterfaceSerializer(serializers.HyperlinkedModelSerializer):
 class PeerInterfaceSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:interface-detail')
     device = NestedDeviceSerializer()
     device = NestedDeviceSerializer()
 
 
     class Meta:
     class Meta:
@@ -416,6 +432,7 @@ class PeerInterfaceSerializer(serializers.HyperlinkedModelSerializer):
 
 
 
 
 class DeviceInterfaceSerializer(serializers.HyperlinkedModelSerializer):
 class DeviceInterfaceSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:interface-detail')
     connection = serializers.SerializerMethodField()
     connection = serializers.SerializerMethodField()
 
 
     class Meta:
     class Meta:
@@ -442,6 +459,7 @@ class InterfaceConnectionSerializer(serializers.ModelSerializer):
 
 
 
 
 class NestedInterfaceConnectionSerializer(serializers.HyperlinkedModelSerializer):
 class NestedInterfaceConnectionSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:interfaceconnection-detail')
 
 
     class Meta:
     class Meta:
         model = InterfaceConnection
         model = InterfaceConnection
@@ -461,7 +479,8 @@ class DeviceBaySerializer(serializers.ModelSerializer):
         fields = ['id', 'device', 'name', 'installed_device']
         fields = ['id', 'device', 'name', 'installed_device']
 
 
 
 
-class ChildDeviceBaySerializer(serializers.HyperlinkedModelSerializer):
+class DeviceDeviceBaySerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:devicebay-detail')
 
 
     class Meta:
     class Meta:
         model = DeviceBay
         model = DeviceBay
@@ -481,7 +500,8 @@ class ModuleSerializer(serializers.ModelSerializer):
         fields = ['id', 'device', 'parent', 'name', 'manufacturer', 'part_id', 'serial', 'discovered']
         fields = ['id', 'device', 'parent', 'name', 'manufacturer', 'part_id', 'serial', 'discovered']
 
 
 
 
-class ChildModuleSerializer(serializers.HyperlinkedModelSerializer):
+class DeviceModuleSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='dcim-api:module-detail')
 
 
     class Meta:
     class Meta:
         model = Module
         model = Module

+ 2 - 2
netbox/dcim/api/views.py

@@ -279,7 +279,7 @@ class DeviceBayViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin,
 
 
 
 
 class DeviceDeviceBayViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
 class DeviceDeviceBayViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
-    serializer_class = serializers.ChildDeviceBaySerializer
+    serializer_class = serializers.DeviceDeviceBaySerializer
 
 
     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'])
@@ -296,7 +296,7 @@ class ModuleViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, Wri
 
 
 
 
 class DeviceModuleViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
 class DeviceModuleViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
-    serializer_class = serializers.ChildModuleSerializer
+    serializer_class = serializers.DeviceModuleSerializer
 
 
     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'])

+ 10 - 1
netbox/ipam/api/serializers.py

@@ -20,6 +20,7 @@ class VRFSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedVRFSerializer(serializers.HyperlinkedModelSerializer):
 class NestedVRFSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='ipam-api:vrf-detail')
 
 
     class Meta:
     class Meta:
         model = VRF
         model = VRF
@@ -38,6 +39,7 @@ class RoleSerializer(serializers.ModelSerializer):
 
 
 
 
 class NestedRoleSerializer(serializers.HyperlinkedModelSerializer):
 class NestedRoleSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='ipam-api:role-detail')
 
 
     class Meta:
     class Meta:
         model = Role
         model = Role
@@ -56,6 +58,7 @@ class RIRSerializer(serializers.ModelSerializer):
 
 
 
 
 class NestedRIRSerializer(serializers.HyperlinkedModelSerializer):
 class NestedRIRSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='ipam-api:rir-detail')
 
 
     class Meta:
     class Meta:
         model = RIR
         model = RIR
@@ -75,6 +78,7 @@ class AggregateSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedAggregateSerializer(serializers.HyperlinkedModelSerializer):
 class NestedAggregateSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='ipam-api:aggregate-detail')
 
 
     class Meta(AggregateSerializer.Meta):
     class Meta(AggregateSerializer.Meta):
         model = Aggregate
         model = Aggregate
@@ -94,6 +98,7 @@ class VLANGroupSerializer(WritableSerializerMixin, serializers.ModelSerializer):
 
 
 
 
 class NestedVLANGroupSerializer(serializers.HyperlinkedModelSerializer):
 class NestedVLANGroupSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='ipam-api:vlangroup-detail')
 
 
     class Meta:
     class Meta:
         model = VLANGroup
         model = VLANGroup
@@ -119,6 +124,7 @@ class VLANSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedVLANSerializer(serializers.HyperlinkedModelSerializer):
 class NestedVLANSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='ipam-api:vlan-detail')
 
 
     class Meta:
     class Meta:
         model = VLAN
         model = VLAN
@@ -145,6 +151,7 @@ class PrefixSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedPrefixSerializer(serializers.HyperlinkedModelSerializer):
 class NestedPrefixSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='ipam-api:prefix-detail')
 
 
     class Meta:
     class Meta:
         model = Prefix
         model = Prefix
@@ -169,6 +176,7 @@ class IPAddressSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedIPAddressSerializer(serializers.HyperlinkedModelSerializer):
 class NestedIPAddressSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='ipam-api:ipaddress-detail')
 
 
     class Meta:
     class Meta:
         model = IPAddress
         model = IPAddress
@@ -191,7 +199,8 @@ class ServiceSerializer(serializers.ModelSerializer):
         fields = ['id', 'device', 'name', 'port', 'protocol', 'ipaddresses', 'description']
         fields = ['id', 'device', 'name', 'port', 'protocol', 'ipaddresses', 'description']
 
 
 
 
-class ChildServiceSerializer(serializers.HyperlinkedModelSerializer):
+class DeviceServiceSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='ipam-api:service-detail')
     ipaddresses = NestedIPAddressSerializer(many=True)
     ipaddresses = NestedIPAddressSerializer(many=True)
 
 
     class Meta:
     class Meta:

+ 1 - 1
netbox/ipam/api/views.py

@@ -101,7 +101,7 @@ class ServiceViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, Wr
 
 
 
 
 class DeviceServiceViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
 class DeviceServiceViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
-    serializer_class = serializers.ChildServiceSerializer
+    serializer_class = serializers.DeviceServiceSerializer
 
 
     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'])

+ 5 - 5
netbox/netbox/urls.py

@@ -26,11 +26,11 @@ _patterns = [
     url(r'^profile/', include('users.urls', namespace='users')),
     url(r'^profile/', include('users.urls', namespace='users')),
 
 
     # API
     # API
-    url(r'^api/circuits/', include('circuits.api.urls')),
-    url(r'^api/dcim/', include('dcim.api.urls')),
-    url(r'^api/ipam/', include('ipam.api.urls')),
-    url(r'^api/secrets/', include('secrets.api.urls')),
-    url(r'^api/tenancy/', include('tenancy.api.urls')),
+    url(r'^api/circuits/', include('circuits.api.urls', namespace='circuits-api')),
+    url(r'^api/dcim/', include('dcim.api.urls', namespace='dcim-api')),
+    url(r'^api/ipam/', include('ipam.api.urls', namespace='ipam-api')),
+    url(r'^api/secrets/', include('secrets.api.urls', namespace='secrets-api')),
+    url(r'^api/tenancy/', include('tenancy.api.urls', namespace='tenancy-api')),
     url(r'^api-auth/', include('rest_framework.urls')),
     url(r'^api-auth/', include('rest_framework.urls')),
 
 
     # Error testing
     # Error testing

+ 1 - 0
netbox/secrets/api/serializers.py

@@ -16,6 +16,7 @@ class SecretRoleSerializer(serializers.ModelSerializer):
 
 
 
 
 class NestedSecretRoleSerializer(serializers.HyperlinkedModelSerializer):
 class NestedSecretRoleSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='secrets-api:secretrole-detail')
 
 
     class Meta:
     class Meta:
         model = SecretRole
         model = SecretRole

+ 2 - 0
netbox/tenancy/api/serializers.py

@@ -16,6 +16,7 @@ class TenantGroupSerializer(serializers.ModelSerializer):
 
 
 
 
 class NestedTenantGroupSerializer(serializers.HyperlinkedModelSerializer):
 class NestedTenantGroupSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenantgroup-detail')
 
 
     class Meta:
     class Meta:
         model = TenantGroup
         model = TenantGroup
@@ -35,6 +36,7 @@ class TenantSerializer(CustomFieldSerializer, serializers.ModelSerializer):
 
 
 
 
 class NestedTenantSerializer(serializers.HyperlinkedModelSerializer):
 class NestedTenantSerializer(serializers.HyperlinkedModelSerializer):
+    url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenant-detail')
 
 
     class Meta:
     class Meta:
         model = Tenant
         model = Tenant