| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- from rest_framework import serializers
- from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
- 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 extras.models import ConfigContext, ConfigContextProfile, Tag
- from netbox.api.fields import SerializedPKRelatedField
- from netbox.api.serializers import ChangeLogMessageSerializer, PrimaryModelSerializer, ValidatedModelSerializer
- from users.api.serializers_.mixins import OwnerMixin
- from tenancy.api.serializers_.tenants import TenantSerializer, TenantGroupSerializer
- from tenancy.models import Tenant, TenantGroup
- from virtualization.api.serializers_.clusters import ClusterSerializer, ClusterGroupSerializer, ClusterTypeSerializer
- from virtualization.models import Cluster, ClusterGroup, ClusterType
- __all__ = (
- 'ConfigContextProfileSerializer',
- 'ConfigContextSerializer',
- )
- class ConfigContextProfileSerializer(PrimaryModelSerializer):
- data_source = DataSourceSerializer(
- nested=True,
- required=False
- )
- data_file = DataFileSerializer(
- nested=True,
- required=False
- )
- class Meta:
- model = ConfigContextProfile
- fields = [
- 'id', 'url', 'display_url', 'display', 'name', 'description', 'schema', 'tags', 'owner', 'comments',
- 'data_source', 'data_path', 'data_file', 'data_synced', 'created', 'last_updated',
- ]
- brief_fields = ('id', 'url', 'display', 'name', 'description')
- class ConfigContextSerializer(OwnerMixin, ChangeLogMessageSerializer, ValidatedModelSerializer):
- profile = ConfigContextProfileSerializer(
- nested=True,
- required=False,
- allow_null=True,
- default=None,
- )
- regions = SerializedPKRelatedField(
- queryset=Region.objects.all(),
- serializer=RegionSerializer,
- nested=True,
- required=False,
- many=True
- )
- site_groups = SerializedPKRelatedField(
- queryset=SiteGroup.objects.all(),
- serializer=SiteGroupSerializer,
- nested=True,
- required=False,
- many=True
- )
- sites = SerializedPKRelatedField(
- queryset=Site.objects.all(),
- serializer=SiteSerializer,
- nested=True,
- required=False,
- many=True
- )
- locations = SerializedPKRelatedField(
- queryset=Location.objects.all(),
- serializer=LocationSerializer,
- nested=True,
- required=False,
- many=True
- )
- device_types = SerializedPKRelatedField(
- queryset=DeviceType.objects.all(),
- serializer=DeviceTypeSerializer,
- nested=True,
- required=False,
- many=True
- )
- roles = SerializedPKRelatedField(
- queryset=DeviceRole.objects.all(),
- serializer=DeviceRoleSerializer,
- nested=True,
- required=False,
- many=True
- )
- platforms = SerializedPKRelatedField(
- queryset=Platform.objects.all(),
- serializer=PlatformSerializer,
- nested=True,
- required=False,
- many=True
- )
- cluster_types = SerializedPKRelatedField(
- queryset=ClusterType.objects.all(),
- serializer=ClusterTypeSerializer,
- nested=True,
- required=False,
- many=True
- )
- cluster_groups = SerializedPKRelatedField(
- queryset=ClusterGroup.objects.all(),
- serializer=ClusterGroupSerializer,
- nested=True,
- required=False,
- many=True
- )
- clusters = SerializedPKRelatedField(
- queryset=Cluster.objects.all(),
- serializer=ClusterSerializer,
- nested=True,
- required=False,
- many=True
- )
- tenant_groups = SerializedPKRelatedField(
- queryset=TenantGroup.objects.all(),
- serializer=TenantGroupSerializer,
- nested=True,
- required=False,
- many=True
- )
- tenants = SerializedPKRelatedField(
- queryset=Tenant.objects.all(),
- serializer=TenantSerializer,
- nested=True,
- required=False,
- many=True
- )
- 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,
- required=False
- )
- class Meta:
- model = ConfigContext
- fields = [
- 'id', 'url', 'display_url', 'display', 'name', 'weight', 'profile', 'description', 'is_active', 'regions',
- 'site_groups', 'sites', 'locations', 'device_types', 'roles', 'platforms', 'cluster_types',
- 'cluster_groups', 'clusters', 'tenant_groups', 'tenants', 'owner', 'tags', 'data_source', 'data_path',
- 'data_file', 'data_synced', 'data', 'created', 'last_updated',
- ]
- brief_fields = ('id', 'url', 'display', 'name', 'description')
|