|
@@ -6,7 +6,7 @@ from dcim.api.serializers_.platforms import PlatformSerializer
|
|
|
from dcim.api.serializers_.roles import DeviceRoleSerializer
|
|
from dcim.api.serializers_.roles import DeviceRoleSerializer
|
|
|
from dcim.api.serializers_.sites import LocationSerializer, RegionSerializer, SiteSerializer, SiteGroupSerializer
|
|
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, Tag
|
|
|
|
|
|
|
+from extras.models import ConfigContext, ConfigContextProfile, Tag
|
|
|
from netbox.api.fields import SerializedPKRelatedField
|
|
from netbox.api.fields import SerializedPKRelatedField
|
|
|
from netbox.api.serializers import ChangeLogMessageSerializer, ValidatedModelSerializer
|
|
from netbox.api.serializers import ChangeLogMessageSerializer, ValidatedModelSerializer
|
|
|
from tenancy.api.serializers_.tenants import TenantSerializer, TenantGroupSerializer
|
|
from tenancy.api.serializers_.tenants import TenantSerializer, TenantGroupSerializer
|
|
@@ -15,11 +15,43 @@ from virtualization.api.serializers_.clusters import ClusterSerializer, ClusterG
|
|
|
from virtualization.models import Cluster, ClusterGroup, ClusterType
|
|
from virtualization.models import Cluster, ClusterGroup, ClusterType
|
|
|
|
|
|
|
|
__all__ = (
|
|
__all__ = (
|
|
|
|
|
+ 'ConfigContextProfileSerializer',
|
|
|
'ConfigContextSerializer',
|
|
'ConfigContextSerializer',
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+class ConfigContextProfileSerializer(ChangeLogMessageSerializer, ValidatedModelSerializer):
|
|
|
|
|
+ tags = serializers.SlugRelatedField(
|
|
|
|
|
+ queryset=Tag.objects.all(),
|
|
|
|
|
+ slug_field='slug',
|
|
|
|
|
+ required=False,
|
|
|
|
|
+ many=True
|
|
|
|
|
+ )
|
|
|
|
|
+ data_source = DataSourceSerializer(
|
|
|
|
|
+ nested=True,
|
|
|
|
|
+ required=False
|
|
|
|
|
+ )
|
|
|
|
|
+ data_file = DataFileSerializer(
|
|
|
|
|
+ nested=True,
|
|
|
|
|
+ read_only=True
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ class Meta:
|
|
|
|
|
+ model = ConfigContextProfile
|
|
|
|
|
+ fields = [
|
|
|
|
|
+ 'id', 'url', 'display_url', 'display', 'name', 'description', 'schema', 'tags', 'comments', 'data_source',
|
|
|
|
|
+ 'data_path', 'data_file', 'data_synced', 'created', 'last_updated',
|
|
|
|
|
+ ]
|
|
|
|
|
+ brief_fields = ('id', 'url', 'display', 'name', 'description')
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
class ConfigContextSerializer(ChangeLogMessageSerializer, ValidatedModelSerializer):
|
|
class ConfigContextSerializer(ChangeLogMessageSerializer, ValidatedModelSerializer):
|
|
|
|
|
+ profile = ConfigContextProfileSerializer(
|
|
|
|
|
+ nested=True,
|
|
|
|
|
+ required=False,
|
|
|
|
|
+ allow_null=True,
|
|
|
|
|
+ default=None,
|
|
|
|
|
+ )
|
|
|
regions = SerializedPKRelatedField(
|
|
regions = SerializedPKRelatedField(
|
|
|
queryset=Region.objects.all(),
|
|
queryset=Region.objects.all(),
|
|
|
serializer=RegionSerializer,
|
|
serializer=RegionSerializer,
|
|
@@ -122,9 +154,9 @@ class ConfigContextSerializer(ChangeLogMessageSerializer, ValidatedModelSerializ
|
|
|
class Meta:
|
|
class Meta:
|
|
|
model = ConfigContext
|
|
model = ConfigContext
|
|
|
fields = [
|
|
fields = [
|
|
|
- 'id', 'url', 'display_url', 'display', 'name', 'weight', 'description', 'is_active', 'regions',
|
|
|
|
|
|
|
+ 'id', 'url', 'display_url', 'display', 'name', 'weight', 'profile', 'description', 'is_active', 'regions',
|
|
|
'site_groups', 'sites', 'locations', 'device_types', 'roles', 'platforms', 'cluster_types',
|
|
'site_groups', 'sites', 'locations', 'device_types', 'roles', 'platforms', 'cluster_types',
|
|
|
- 'cluster_groups', 'clusters', 'tenant_groups', 'tenants', 'tags', 'data_source', 'data_path',
|
|
|
|
|
- 'data_file', 'data_synced', 'data', 'created', 'last_updated',
|
|
|
|
|
|
|
+ 'cluster_groups', 'clusters', 'tenant_groups', 'tenants', 'tags', 'data_source', 'data_path', 'data_file',
|
|
|
|
|
+ 'data_synced', 'data', 'created', 'last_updated',
|
|
|
]
|
|
]
|
|
|
brief_fields = ('id', 'url', 'display', 'name', 'description')
|
|
brief_fields = ('id', 'url', 'display', 'name', 'description')
|