Namespaced all API URLs

This commit is contained in:
Jeremy Stretch 2017-01-31 10:40:53 -05:00
parent 173a6eee03
commit 1fcc2b0029
8 changed files with 46 additions and 11 deletions

View File

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

View File

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

View File

@ -279,7 +279,7 @@ class DeviceBayViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin,
class DeviceDeviceBayViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
serializer_class = serializers.ChildDeviceBaySerializer
serializer_class = serializers.DeviceDeviceBaySerializer
def get_queryset(self):
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):
serializer_class = serializers.ChildModuleSerializer
serializer_class = serializers.DeviceModuleSerializer
def get_queryset(self):
device = get_object_or_404(Device, pk=self.kwargs['pk'])

View File

@ -20,6 +20,7 @@ class VRFSerializer(CustomFieldSerializer, serializers.ModelSerializer):
class NestedVRFSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='ipam-api:vrf-detail')
class Meta:
model = VRF
@ -38,6 +39,7 @@ class RoleSerializer(serializers.ModelSerializer):
class NestedRoleSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='ipam-api:role-detail')
class Meta:
model = Role
@ -56,6 +58,7 @@ class RIRSerializer(serializers.ModelSerializer):
class NestedRIRSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='ipam-api:rir-detail')
class Meta:
model = RIR
@ -75,6 +78,7 @@ class AggregateSerializer(CustomFieldSerializer, serializers.ModelSerializer):
class NestedAggregateSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='ipam-api:aggregate-detail')
class Meta(AggregateSerializer.Meta):
model = Aggregate
@ -94,6 +98,7 @@ class VLANGroupSerializer(WritableSerializerMixin, serializers.ModelSerializer):
class NestedVLANGroupSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='ipam-api:vlangroup-detail')
class Meta:
model = VLANGroup
@ -119,6 +124,7 @@ class VLANSerializer(CustomFieldSerializer, serializers.ModelSerializer):
class NestedVLANSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='ipam-api:vlan-detail')
class Meta:
model = VLAN
@ -145,6 +151,7 @@ class PrefixSerializer(CustomFieldSerializer, serializers.ModelSerializer):
class NestedPrefixSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='ipam-api:prefix-detail')
class Meta:
model = Prefix
@ -169,6 +176,7 @@ class IPAddressSerializer(CustomFieldSerializer, serializers.ModelSerializer):
class NestedIPAddressSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='ipam-api:ipaddress-detail')
class Meta:
model = IPAddress
@ -191,7 +199,8 @@ class ServiceSerializer(serializers.ModelSerializer):
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)
class Meta:

View File

@ -101,7 +101,7 @@ class ServiceViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, Wr
class DeviceServiceViewSet(CreateModelMixin, ListModelMixin, WritableSerializerMixin, GenericViewSet):
serializer_class = serializers.ChildServiceSerializer
serializer_class = serializers.DeviceServiceSerializer
def get_queryset(self):
device = get_object_or_404(Device, pk=self.kwargs['pk'])

View File

@ -26,11 +26,11 @@ _patterns = [
url(r'^profile/', include('users.urls', namespace='users')),
# 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')),
# Error testing

View File

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

View File

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