|
@@ -1,25 +1,21 @@
|
|
|
from rest_framework import serializers
|
|
from rest_framework import serializers
|
|
|
|
|
|
|
|
from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
|
|
from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
|
|
|
-from dcim.api.nested_serializers import (
|
|
|
|
|
- NestedDeviceRoleSerializer, NestedDeviceTypeSerializer, NestedLocationSerializer, NestedPlatformSerializer,
|
|
|
|
|
- NestedRegionSerializer, NestedSiteSerializer, NestedSiteGroupSerializer,
|
|
|
|
|
-)
|
|
|
|
|
|
|
+from dcim.api.serializers_.devicetypes import DeviceTypeSerializer
|
|
|
|
|
+from dcim.api.serializers_.platforms import PlatformSerializer
|
|
|
|
|
+from dcim.api.serializers_.roles import DeviceRoleSerializer
|
|
|
|
|
+from dcim.api.serializers_.sites import LocationSerializer, RegionSerializer, SiteSerializer, SiteGroupSerializer
|
|
|
from dcim.models import DeviceRole, DeviceType, Location, Platform, Region, Site, SiteGroup
|
|
from dcim.models import DeviceRole, DeviceType, Location, Platform, Region, Site, SiteGroup
|
|
|
-from extras.models import ConfigContext, ConfigTemplate, Tag
|
|
|
|
|
|
|
+from extras.models import ConfigContext, Tag
|
|
|
from netbox.api.fields import SerializedPKRelatedField
|
|
from netbox.api.fields import SerializedPKRelatedField
|
|
|
from netbox.api.serializers import ValidatedModelSerializer
|
|
from netbox.api.serializers import ValidatedModelSerializer
|
|
|
-from netbox.api.serializers.features import TaggableModelSerializer
|
|
|
|
|
-from tenancy.api.nested_serializers import NestedTenantSerializer, NestedTenantGroupSerializer
|
|
|
|
|
|
|
+from tenancy.api.serializers_.tenants import TenantSerializer, TenantGroupSerializer
|
|
|
from tenancy.models import Tenant, TenantGroup
|
|
from tenancy.models import Tenant, TenantGroup
|
|
|
-from virtualization.api.nested_serializers import (
|
|
|
|
|
- NestedClusterGroupSerializer, NestedClusterSerializer, NestedClusterTypeSerializer,
|
|
|
|
|
-)
|
|
|
|
|
|
|
+from virtualization.api.serializers_.clusters import ClusterSerializer, ClusterGroupSerializer, ClusterTypeSerializer
|
|
|
from virtualization.models import Cluster, ClusterGroup, ClusterType
|
|
from virtualization.models import Cluster, ClusterGroup, ClusterType
|
|
|
|
|
|
|
|
__all__ = (
|
|
__all__ = (
|
|
|
'ConfigContextSerializer',
|
|
'ConfigContextSerializer',
|
|
|
- 'ConfigTemplateSerializer',
|
|
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
@@ -27,73 +23,85 @@ class ConfigContextSerializer(ValidatedModelSerializer):
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='extras-api:configcontext-detail')
|
|
url = serializers.HyperlinkedIdentityField(view_name='extras-api:configcontext-detail')
|
|
|
regions = SerializedPKRelatedField(
|
|
regions = SerializedPKRelatedField(
|
|
|
queryset=Region.objects.all(),
|
|
queryset=Region.objects.all(),
|
|
|
- serializer=NestedRegionSerializer,
|
|
|
|
|
|
|
+ serializer=RegionSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
|
site_groups = SerializedPKRelatedField(
|
|
site_groups = SerializedPKRelatedField(
|
|
|
queryset=SiteGroup.objects.all(),
|
|
queryset=SiteGroup.objects.all(),
|
|
|
- serializer=NestedSiteGroupSerializer,
|
|
|
|
|
|
|
+ serializer=SiteGroupSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
|
sites = SerializedPKRelatedField(
|
|
sites = SerializedPKRelatedField(
|
|
|
queryset=Site.objects.all(),
|
|
queryset=Site.objects.all(),
|
|
|
- serializer=NestedSiteSerializer,
|
|
|
|
|
|
|
+ serializer=SiteSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
|
locations = SerializedPKRelatedField(
|
|
locations = SerializedPKRelatedField(
|
|
|
queryset=Location.objects.all(),
|
|
queryset=Location.objects.all(),
|
|
|
- serializer=NestedLocationSerializer,
|
|
|
|
|
|
|
+ serializer=LocationSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
|
device_types = SerializedPKRelatedField(
|
|
device_types = SerializedPKRelatedField(
|
|
|
queryset=DeviceType.objects.all(),
|
|
queryset=DeviceType.objects.all(),
|
|
|
- serializer=NestedDeviceTypeSerializer,
|
|
|
|
|
|
|
+ serializer=DeviceTypeSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
|
roles = SerializedPKRelatedField(
|
|
roles = SerializedPKRelatedField(
|
|
|
queryset=DeviceRole.objects.all(),
|
|
queryset=DeviceRole.objects.all(),
|
|
|
- serializer=NestedDeviceRoleSerializer,
|
|
|
|
|
|
|
+ serializer=DeviceRoleSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
|
platforms = SerializedPKRelatedField(
|
|
platforms = SerializedPKRelatedField(
|
|
|
queryset=Platform.objects.all(),
|
|
queryset=Platform.objects.all(),
|
|
|
- serializer=NestedPlatformSerializer,
|
|
|
|
|
|
|
+ serializer=PlatformSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
|
cluster_types = SerializedPKRelatedField(
|
|
cluster_types = SerializedPKRelatedField(
|
|
|
queryset=ClusterType.objects.all(),
|
|
queryset=ClusterType.objects.all(),
|
|
|
- serializer=NestedClusterTypeSerializer,
|
|
|
|
|
|
|
+ serializer=ClusterTypeSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
|
cluster_groups = SerializedPKRelatedField(
|
|
cluster_groups = SerializedPKRelatedField(
|
|
|
queryset=ClusterGroup.objects.all(),
|
|
queryset=ClusterGroup.objects.all(),
|
|
|
- serializer=NestedClusterGroupSerializer,
|
|
|
|
|
|
|
+ serializer=ClusterGroupSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
|
clusters = SerializedPKRelatedField(
|
|
clusters = SerializedPKRelatedField(
|
|
|
queryset=Cluster.objects.all(),
|
|
queryset=Cluster.objects.all(),
|
|
|
- serializer=NestedClusterSerializer,
|
|
|
|
|
|
|
+ serializer=ClusterSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
|
tenant_groups = SerializedPKRelatedField(
|
|
tenant_groups = SerializedPKRelatedField(
|
|
|
queryset=TenantGroup.objects.all(),
|
|
queryset=TenantGroup.objects.all(),
|
|
|
- serializer=NestedTenantGroupSerializer,
|
|
|
|
|
|
|
+ serializer=TenantGroupSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
|
tenants = SerializedPKRelatedField(
|
|
tenants = SerializedPKRelatedField(
|
|
|
queryset=Tenant.objects.all(),
|
|
queryset=Tenant.objects.all(),
|
|
|
- serializer=NestedTenantSerializer,
|
|
|
|
|
|
|
+ serializer=TenantSerializer,
|
|
|
|
|
+ nested=True,
|
|
|
required=False,
|
|
required=False,
|
|
|
many=True
|
|
many=True
|
|
|
)
|
|
)
|
|
@@ -121,27 +129,3 @@ class ConfigContextSerializer(ValidatedModelSerializer):
|
|
|
'created', 'last_updated',
|
|
'created', 'last_updated',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'name', 'description')
|
|
brief_fields = ('id', 'url', 'display', 'name', 'description')
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-#
|
|
|
|
|
-# Config templates
|
|
|
|
|
-#
|
|
|
|
|
-
|
|
|
|
|
-class ConfigTemplateSerializer(TaggableModelSerializer, ValidatedModelSerializer):
|
|
|
|
|
- url = serializers.HyperlinkedIdentityField(view_name='extras-api:configtemplate-detail')
|
|
|
|
|
- data_source = DataSourceSerializer(
|
|
|
|
|
- nested=True,
|
|
|
|
|
- required=False
|
|
|
|
|
- )
|
|
|
|
|
- data_file = DataFileSerializer(
|
|
|
|
|
- nested=True,
|
|
|
|
|
- required=False
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
- class Meta:
|
|
|
|
|
- model = ConfigTemplate
|
|
|
|
|
- fields = [
|
|
|
|
|
- 'id', 'url', 'display', 'name', 'description', 'environment_params', 'template_code', 'data_source',
|
|
|
|
|
- 'data_path', 'data_file', 'data_synced', 'tags', 'created', 'last_updated',
|
|
|
|
|
- ]
|
|
|
|
|
- brief_fields = ('id', 'url', 'display', 'name', 'description')
|
|
|