X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plstackapi%2Fcore%2Fserializers.py;h=ded18597ebdbdeac9c1371bf6122e14bceb0b982;hb=659dd52fcd50b58549f1eaa2812223792b4e4104;hp=0ffd86bd22ff51a6c027bc2b63bd1427b7ba9667;hpb=f1c12241aabe7067a0cf2b65d7dfb71b4c1e9258;p=plstackapi.git diff --git a/plstackapi/core/serializers.py b/plstackapi/core/serializers.py index 0ffd86b..ded1859 100644 --- a/plstackapi/core/serializers.py +++ b/plstackapi/core/serializers.py @@ -6,7 +6,6 @@ from plstackapi.core.models import * class RoleSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() - class Meta: model = Role fields = ('id', @@ -21,12 +20,13 @@ class UserSerializer(serializers.HyperlinkedModelSerializer): slice_memberships = serializers.HyperlinkedRelatedField(view_name='slice-membership-detail') site_privileges = serializers.HyperlinkedRelatedField(view_name='site-privilege-detail') class Meta: - model = User + model = PLUser fields = ('id', 'user_id', 'firstname', 'lastname', 'email', + 'password', 'phone', 'user_url', 'is_admin', @@ -51,20 +51,50 @@ class SliceSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() site = serializers.HyperlinkedRelatedField(view_name='site-detail') - + slivers = serializers.HyperlinkedRelatedField(view_name='sliver-detail') + subnet= serializers.HyperlinkedRelatedField(view_name='subnet-detail') class Meta: model = Slice fields = ('id', - 'url', + 'tenant_id', + 'enabled', 'name', - 'instantiation', + 'url', 'omf_friendly', 'description', 'slice_url', + 'network_id', + 'router_id', 'site', + 'slivers', 'updated', 'created') +class SliceMembershipSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + slice = serializers.HyperlinkedRelatedField(view_name='slice-detail') + user = serializers.HyperlinkedRelatedField(view_name='user-detail') + role = serializers.HyperlinkedRelatedField(view_name='role-detail') + class Meta: + model = SitePrivilege + fields = ('id', + 'user', + 'slice', + 'role') + +class SubnetSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + slice = serializers.HyperlinkedRelatedField(view_name='slice-detail') + class Meta: + model = Subnet + fields = ('id', + 'subnet_id', + 'cidr', + 'ip_version', + 'start', + 'end', + 'slice') + class SiteSerializer(serializers.HyperlinkedModelSerializer): #Experimenting with whether to use ids, hyperlinks, or nested includes @@ -74,14 +104,12 @@ class SiteSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail') - deployment_networks = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='sitedeploymentnetwork-detail') class Meta: model = Site fields = ('id', 'url', 'name', - 'deployment_networks', 'slices', 'site_url', 'enabled', @@ -94,11 +122,23 @@ class SiteSerializer(serializers.HyperlinkedModelSerializer): 'updated', 'created') +class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + site = serializers.HyperlinkedRelatedField(view_name='site-detail') + user = serializers.HyperlinkedRelatedField(view_name='user-detail') + role = serializers.HyperlinkedRelatedField(view_name='role-detail') + class Meta: + model = SitePrivilege + fields = ('id', + 'user', + 'site', + 'role') + class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() - sites = serializers.HyperlinkedRelatedField(view_name='sitedeploymentnetwork-detail') + sites = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail') class Meta: model = DeploymentNetwork fields = ('id', @@ -106,30 +146,30 @@ class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer): 'sites' ) -class SiteDeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer): - # HyperlinkedModelSerializer doesn't include the id by default - id = serializers.Field() - site = serializers.HyperlinkedRelatedField(view_name='site-detail') - deploymentNetwork = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail') - - class Meta: - model = SiteDeploymentNetwork - fields = ('id', - 'url', - 'site', - 'deploymentNetwork') - class SliverSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() - slice = serializers.RelatedField(read_only=True) + image = serializers.HyperlinkedRelatedField(view_name='image-detail') + key = serializers.HyperlinkedRelatedField(view_name='key-detail') + slice = serializers.HyperlinkedRelatedField(view_name='slice-detail') + deployment_network = serializers.HyperlinkedRelatedField(view_name='deployment_network-detail') + node = serializers.HyperlinkedRelatedField(view_name='node-detail') + + #slice = serializers.PrimaryKeyRelatedField(read_only=True) class Meta: model = Sliver fields = ('id', + 'instance_id', + 'name', + 'instance_name', + 'ip', + 'image', + 'key', 'slice', - 'name') + 'deploymentNetwork', + 'node') class NodeSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default @@ -150,30 +190,19 @@ class ImageSerializer(serializers.HyperlinkedModelSerializer): 'disk_format', 'container_format') -class FlavorSerializer(serializers.HyperlinkedModelSerializer): - # HyperlinkedModelSerializer doesn't include the id by default - id = serializers.Field() - class Meta: - model = Flavor - fields = ('id', - 'flavor_id', - 'name', - 'memory_mb', - 'disk_gb', - 'vcpus') - serializerLookUp = { Role: RoleSerializer, - User: UserSerializer, + PLUser: UserSerializer, Key: KeySerializer, Site: SiteSerializer, + SitePrivilege: SitePrivilegeSerializer, Slice: SliceSerializer, + SliceMembership: SliceMembershipSerializer, + Subnet: SubnetSerializer, Node: NodeSerializer, Sliver: SliverSerializer, DeploymentNetwork: DeploymentNetworkSerializer, - SiteDeploymentNetwork: SiteDeploymentNetworkSerializer, Image: ImageSerializer, - Flavor: FlavorSerializer, None: None, }