|
@@ -14,6 +14,7 @@ from ipam.models import VLAN
|
|
|
from netbox.api.fields import ChoiceField, ContentTypeField, SerializedPKRelatedField
|
|
from netbox.api.fields import ChoiceField, ContentTypeField, SerializedPKRelatedField
|
|
|
from netbox.api.gfk_fields import GFKSerializerField
|
|
from netbox.api.gfk_fields import GFKSerializerField
|
|
|
from netbox.api.serializers import NetBoxModelSerializer
|
|
from netbox.api.serializers import NetBoxModelSerializer
|
|
|
|
|
+from users.api.serializers_.mixins import OwnerMixin
|
|
|
from vpn.api.serializers_.l2vpn import L2VPNTerminationSerializer
|
|
from vpn.api.serializers_.l2vpn import L2VPNTerminationSerializer
|
|
|
from wireless.api.serializers_.nested import NestedWirelessLinkSerializer
|
|
from wireless.api.serializers_.nested import NestedWirelessLinkSerializer
|
|
|
from wireless.api.serializers_.wirelesslans import WirelessLANSerializer
|
|
from wireless.api.serializers_.wirelesslans import WirelessLANSerializer
|
|
@@ -40,7 +41,12 @@ __all__ = (
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
-class ConsoleServerPortSerializer(NetBoxModelSerializer, CabledObjectSerializer, ConnectedEndpointsSerializer):
|
|
|
|
|
|
|
+class ConsoleServerPortSerializer(
|
|
|
|
|
+ OwnerMixin,
|
|
|
|
|
+ NetBoxModelSerializer,
|
|
|
|
|
+ CabledObjectSerializer,
|
|
|
|
|
+ ConnectedEndpointsSerializer
|
|
|
|
|
+):
|
|
|
device = DeviceSerializer(nested=True)
|
|
device = DeviceSerializer(nested=True)
|
|
|
module = ModuleSerializer(
|
|
module = ModuleSerializer(
|
|
|
nested=True,
|
|
nested=True,
|
|
@@ -64,13 +70,18 @@ class ConsoleServerPortSerializer(NetBoxModelSerializer, CabledObjectSerializer,
|
|
|
fields = [
|
|
fields = [
|
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'speed', 'description',
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'speed', 'description',
|
|
|
'mark_connected', 'cable', 'cable_end', 'link_peers', 'link_peers_type', 'connected_endpoints',
|
|
'mark_connected', 'cable', 'cable_end', 'link_peers', 'link_peers_type', 'connected_endpoints',
|
|
|
- 'connected_endpoints_type', 'connected_endpoints_reachable', 'tags', 'custom_fields', 'created',
|
|
|
|
|
|
|
+ 'connected_endpoints_type', 'connected_endpoints_reachable', 'owner', 'tags', 'custom_fields', 'created',
|
|
|
'last_updated', '_occupied',
|
|
'last_updated', '_occupied',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
|
|
|
|
|
|
|
|
|
|
|
-class ConsolePortSerializer(NetBoxModelSerializer, CabledObjectSerializer, ConnectedEndpointsSerializer):
|
|
|
|
|
|
|
+class ConsolePortSerializer(
|
|
|
|
|
+ OwnerMixin,
|
|
|
|
|
+ NetBoxModelSerializer,
|
|
|
|
|
+ CabledObjectSerializer,
|
|
|
|
|
+ ConnectedEndpointsSerializer
|
|
|
|
|
+):
|
|
|
device = DeviceSerializer(nested=True)
|
|
device = DeviceSerializer(nested=True)
|
|
|
module = ModuleSerializer(
|
|
module = ModuleSerializer(
|
|
|
nested=True,
|
|
nested=True,
|
|
@@ -94,13 +105,18 @@ class ConsolePortSerializer(NetBoxModelSerializer, CabledObjectSerializer, Conne
|
|
|
fields = [
|
|
fields = [
|
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'speed', 'description',
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'speed', 'description',
|
|
|
'mark_connected', 'cable', 'cable_end', 'link_peers', 'link_peers_type', 'connected_endpoints',
|
|
'mark_connected', 'cable', 'cable_end', 'link_peers', 'link_peers_type', 'connected_endpoints',
|
|
|
- 'connected_endpoints_type', 'connected_endpoints_reachable', 'tags', 'custom_fields', 'created',
|
|
|
|
|
|
|
+ 'connected_endpoints_type', 'connected_endpoints_reachable', 'owner', 'tags', 'custom_fields', 'created',
|
|
|
'last_updated', '_occupied',
|
|
'last_updated', '_occupied',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
|
|
|
|
|
|
|
|
|
|
|
-class PowerPortSerializer(NetBoxModelSerializer, CabledObjectSerializer, ConnectedEndpointsSerializer):
|
|
|
|
|
|
|
+class PowerPortSerializer(
|
|
|
|
|
+ OwnerMixin,
|
|
|
|
|
+ NetBoxModelSerializer,
|
|
|
|
|
+ CabledObjectSerializer,
|
|
|
|
|
+ ConnectedEndpointsSerializer
|
|
|
|
|
+):
|
|
|
device = DeviceSerializer(nested=True)
|
|
device = DeviceSerializer(nested=True)
|
|
|
module = ModuleSerializer(
|
|
module = ModuleSerializer(
|
|
|
nested=True,
|
|
nested=True,
|
|
@@ -120,13 +136,18 @@ class PowerPortSerializer(NetBoxModelSerializer, CabledObjectSerializer, Connect
|
|
|
fields = [
|
|
fields = [
|
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'maximum_draw',
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'maximum_draw',
|
|
|
'allocated_draw', 'description', 'mark_connected', 'cable', 'cable_end', 'link_peers', 'link_peers_type',
|
|
'allocated_draw', 'description', 'mark_connected', 'cable', 'cable_end', 'link_peers', 'link_peers_type',
|
|
|
- 'connected_endpoints', 'connected_endpoints_type', 'connected_endpoints_reachable', 'tags', 'custom_fields',
|
|
|
|
|
- 'created', 'last_updated', '_occupied',
|
|
|
|
|
|
|
+ 'connected_endpoints', 'connected_endpoints_type', 'connected_endpoints_reachable', 'owner', 'tags',
|
|
|
|
|
+ 'custom_fields', 'created', 'last_updated', '_occupied',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
|
|
|
|
|
|
|
|
|
|
|
-class PowerOutletSerializer(NetBoxModelSerializer, CabledObjectSerializer, ConnectedEndpointsSerializer):
|
|
|
|
|
|
|
+class PowerOutletSerializer(
|
|
|
|
|
+ OwnerMixin,
|
|
|
|
|
+ NetBoxModelSerializer,
|
|
|
|
|
+ CabledObjectSerializer,
|
|
|
|
|
+ ConnectedEndpointsSerializer
|
|
|
|
|
+):
|
|
|
device = DeviceSerializer(nested=True)
|
|
device = DeviceSerializer(nested=True)
|
|
|
module = ModuleSerializer(
|
|
module = ModuleSerializer(
|
|
|
nested=True,
|
|
nested=True,
|
|
@@ -159,12 +180,17 @@ class PowerOutletSerializer(NetBoxModelSerializer, CabledObjectSerializer, Conne
|
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'status', 'color',
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'status', 'color',
|
|
|
'power_port', 'feed_leg', 'description', 'mark_connected', 'cable', 'cable_end', 'link_peers',
|
|
'power_port', 'feed_leg', 'description', 'mark_connected', 'cable', 'cable_end', 'link_peers',
|
|
|
'link_peers_type', 'connected_endpoints', 'connected_endpoints_type', 'connected_endpoints_reachable',
|
|
'link_peers_type', 'connected_endpoints', 'connected_endpoints_type', 'connected_endpoints_reachable',
|
|
|
- 'tags', 'custom_fields', 'created', 'last_updated', '_occupied',
|
|
|
|
|
|
|
+ 'owner', 'tags', 'custom_fields', 'created', 'last_updated', '_occupied',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
|
|
|
|
|
|
|
|
|
|
|
-class InterfaceSerializer(NetBoxModelSerializer, CabledObjectSerializer, ConnectedEndpointsSerializer):
|
|
|
|
|
|
|
+class InterfaceSerializer(
|
|
|
|
|
+ OwnerMixin,
|
|
|
|
|
+ NetBoxModelSerializer,
|
|
|
|
|
+ CabledObjectSerializer,
|
|
|
|
|
+ ConnectedEndpointsSerializer
|
|
|
|
|
+):
|
|
|
device = DeviceSerializer(nested=True)
|
|
device = DeviceSerializer(nested=True)
|
|
|
vdcs = SerializedPKRelatedField(
|
|
vdcs = SerializedPKRelatedField(
|
|
|
queryset=VirtualDeviceContext.objects.all(),
|
|
queryset=VirtualDeviceContext.objects.all(),
|
|
@@ -226,7 +252,7 @@ class InterfaceSerializer(NetBoxModelSerializer, CabledObjectSerializer, Connect
|
|
|
'rf_channel_frequency', 'rf_channel_width', 'tx_power', 'untagged_vlan', 'tagged_vlans', 'qinq_svlan',
|
|
'rf_channel_frequency', 'rf_channel_width', 'tx_power', 'untagged_vlan', 'tagged_vlans', 'qinq_svlan',
|
|
|
'vlan_translation_policy', 'mark_connected', 'cable', 'cable_end', 'wireless_link', 'link_peers',
|
|
'vlan_translation_policy', 'mark_connected', 'cable', 'cable_end', 'wireless_link', 'link_peers',
|
|
|
'link_peers_type', 'wireless_lans', 'vrf', 'l2vpn_termination', 'connected_endpoints',
|
|
'link_peers_type', 'wireless_lans', 'vrf', 'l2vpn_termination', 'connected_endpoints',
|
|
|
- 'connected_endpoints_type', 'connected_endpoints_reachable', 'tags', 'custom_fields', 'created',
|
|
|
|
|
|
|
+ 'connected_endpoints_type', 'connected_endpoints_reachable', 'owner', 'tags', 'custom_fields', 'created',
|
|
|
'last_updated', 'count_ipaddresses', 'count_fhrp_groups', '_occupied',
|
|
'last_updated', 'count_ipaddresses', 'count_fhrp_groups', '_occupied',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
@@ -307,7 +333,7 @@ class RearPortMappingSerializer(serializers.ModelSerializer):
|
|
|
fields = ('position', 'front_port', 'front_port_position')
|
|
fields = ('position', 'front_port', 'front_port_position')
|
|
|
|
|
|
|
|
|
|
|
|
|
-class RearPortSerializer(NetBoxModelSerializer, CabledObjectSerializer, PortSerializer):
|
|
|
|
|
|
|
+class RearPortSerializer(OwnerMixin, NetBoxModelSerializer, CabledObjectSerializer, PortSerializer):
|
|
|
device = DeviceSerializer(nested=True)
|
|
device = DeviceSerializer(nested=True)
|
|
|
module = ModuleSerializer(
|
|
module = ModuleSerializer(
|
|
|
nested=True,
|
|
nested=True,
|
|
@@ -327,7 +353,7 @@ class RearPortSerializer(NetBoxModelSerializer, CabledObjectSerializer, PortSeri
|
|
|
fields = [
|
|
fields = [
|
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'color', 'positions',
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'color', 'positions',
|
|
|
'front_ports', 'description', 'mark_connected', 'cable', 'cable_end', 'link_peers', 'link_peers_type',
|
|
'front_ports', 'description', 'mark_connected', 'cable', 'cable_end', 'link_peers', 'link_peers_type',
|
|
|
- 'tags', 'custom_fields', 'created', 'last_updated', '_occupied',
|
|
|
|
|
|
|
+ 'owner', 'tags', 'custom_fields', 'created', 'last_updated', '_occupied',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
|
|
|
|
|
@@ -345,7 +371,7 @@ class FrontPortMappingSerializer(serializers.ModelSerializer):
|
|
|
fields = ('position', 'rear_port', 'rear_port_position')
|
|
fields = ('position', 'rear_port', 'rear_port_position')
|
|
|
|
|
|
|
|
|
|
|
|
|
-class FrontPortSerializer(NetBoxModelSerializer, CabledObjectSerializer, PortSerializer):
|
|
|
|
|
|
|
+class FrontPortSerializer(OwnerMixin, NetBoxModelSerializer, CabledObjectSerializer, PortSerializer):
|
|
|
device = DeviceSerializer(nested=True)
|
|
device = DeviceSerializer(nested=True)
|
|
|
module = ModuleSerializer(
|
|
module = ModuleSerializer(
|
|
|
nested=True,
|
|
nested=True,
|
|
@@ -365,12 +391,12 @@ class FrontPortSerializer(NetBoxModelSerializer, CabledObjectSerializer, PortSer
|
|
|
fields = [
|
|
fields = [
|
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'color', 'positions',
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'label', 'type', 'color', 'positions',
|
|
|
'rear_ports', 'description', 'mark_connected', 'cable', 'cable_end', 'link_peers', 'link_peers_type',
|
|
'rear_ports', 'description', 'mark_connected', 'cable', 'cable_end', 'link_peers', 'link_peers_type',
|
|
|
- 'tags', 'custom_fields', 'created', 'last_updated', '_occupied',
|
|
|
|
|
|
|
+ 'owner', 'tags', 'custom_fields', 'created', 'last_updated', '_occupied',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', 'cable', '_occupied')
|
|
|
|
|
|
|
|
|
|
|
|
|
-class ModuleBaySerializer(NetBoxModelSerializer):
|
|
|
|
|
|
|
+class ModuleBaySerializer(OwnerMixin, NetBoxModelSerializer):
|
|
|
device = DeviceSerializer(nested=True)
|
|
device = DeviceSerializer(nested=True)
|
|
|
module = ModuleSerializer(
|
|
module = ModuleSerializer(
|
|
|
nested=True,
|
|
nested=True,
|
|
@@ -390,12 +416,12 @@ class ModuleBaySerializer(NetBoxModelSerializer):
|
|
|
model = ModuleBay
|
|
model = ModuleBay
|
|
|
fields = [
|
|
fields = [
|
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'installed_module', 'label', 'position',
|
|
'id', 'url', 'display_url', 'display', 'device', 'module', 'name', 'installed_module', 'label', 'position',
|
|
|
- 'description', 'tags', 'custom_fields', 'created', 'last_updated',
|
|
|
|
|
|
|
+ 'description', 'owner', 'tags', 'custom_fields', 'created', 'last_updated',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'installed_module', 'name', 'description')
|
|
brief_fields = ('id', 'url', 'display', 'installed_module', 'name', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
-class DeviceBaySerializer(NetBoxModelSerializer):
|
|
|
|
|
|
|
+class DeviceBaySerializer(OwnerMixin, NetBoxModelSerializer):
|
|
|
device = DeviceSerializer(nested=True)
|
|
device = DeviceSerializer(nested=True)
|
|
|
installed_device = DeviceSerializer(nested=True, required=False, allow_null=True)
|
|
installed_device = DeviceSerializer(nested=True, required=False, allow_null=True)
|
|
|
|
|
|
|
@@ -403,12 +429,12 @@ class DeviceBaySerializer(NetBoxModelSerializer):
|
|
|
model = DeviceBay
|
|
model = DeviceBay
|
|
|
fields = [
|
|
fields = [
|
|
|
'id', 'url', 'display_url', 'display', 'device', 'name', 'label', 'description', 'installed_device',
|
|
'id', 'url', 'display_url', 'display', 'device', 'name', 'label', 'description', 'installed_device',
|
|
|
- 'tags', 'custom_fields', 'created', 'last_updated',
|
|
|
|
|
|
|
+ 'owner', 'tags', 'custom_fields', 'created', 'last_updated',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description')
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
|
-class InventoryItemSerializer(NetBoxModelSerializer):
|
|
|
|
|
|
|
+class InventoryItemSerializer(OwnerMixin, NetBoxModelSerializer):
|
|
|
device = DeviceSerializer(nested=True)
|
|
device = DeviceSerializer(nested=True)
|
|
|
parent = serializers.PrimaryKeyRelatedField(queryset=InventoryItem.objects.all(), allow_null=True, default=None)
|
|
parent = serializers.PrimaryKeyRelatedField(queryset=InventoryItem.objects.all(), allow_null=True, default=None)
|
|
|
role = InventoryItemRoleSerializer(nested=True, required=False, allow_null=True)
|
|
role = InventoryItemRoleSerializer(nested=True, required=False, allow_null=True)
|
|
@@ -427,6 +453,6 @@ class InventoryItemSerializer(NetBoxModelSerializer):
|
|
|
fields = [
|
|
fields = [
|
|
|
'id', 'url', 'display_url', 'display', 'device', 'parent', 'name', 'label', 'status', 'role',
|
|
'id', 'url', 'display_url', 'display', 'device', 'parent', 'name', 'label', 'status', 'role',
|
|
|
'manufacturer', 'part_id', 'serial', 'asset_tag', 'discovered', 'description', 'component_type',
|
|
'manufacturer', 'part_id', 'serial', 'asset_tag', 'discovered', 'description', 'component_type',
|
|
|
- 'component_id', 'component', 'tags', 'custom_fields', 'created', 'last_updated', '_depth',
|
|
|
|
|
|
|
+ 'component_id', 'component', 'owner', 'tags', 'custom_fields', 'created', 'last_updated', '_depth',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', '_depth')
|
|
brief_fields = ('id', 'url', 'display', 'device', 'name', 'description', '_depth')
|