mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 20:12:00 -06:00
Namespaced all API URLs
This commit is contained in:
parent
173a6eee03
commit
1fcc2b0029
@ -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
|
||||
|
@ -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
|
||||
|
@ -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'])
|
||||
|
@ -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:
|
||||
|
@ -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'])
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user