X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fserializers.py;h=3fb726d19f85991b9b334ab4406a3d3a22d38002;hb=90ecab134bf44662886576bea76c48d0aea316b7;hp=7c5dca984b61d90c6152aba1a64cde2aad720a25;hpb=732913407cc255ab864e39522585e1b98e654af1;p=plstackapi.git diff --git a/planetstack/core/serializers.py b/planetstack/core/serializers.py index 7c5dca9..3fb726d 100644 --- a/planetstack/core/serializers.py +++ b/planetstack/core/serializers.py @@ -3,50 +3,107 @@ from rest_framework import serializers from core.models import * +class DeploymentSerializer(serializers.HyperlinkedModelSerializer): + + # HyperlinkedModelSerializer doesn't include the id by default + id = serializers.Field() + sites = serializers.HyperlinkedRelatedField(view_name='site-detail') + class Meta: + model = Deployment + fields = ('id', + 'url', + 'name', + 'sites' + ) + +class ImageSerializer(serializers.HyperlinkedModelSerializer): + # HyperlinkedModelSerializer doesn't include the id by default + id = serializers.Field() + class Meta: + model = Image + fields = ('id', + 'url', + 'image_id', + 'name', + 'disk_format', + 'container_format') + +class NodeSerializer(serializers.HyperlinkedModelSerializer): + # HyperlinkedModelSerializer doesn't include the id by default + id = serializers.Field() + class Meta: + model = Node + fields = ('id', + 'url', + 'name') + +class ProjectSerializer(serializers.HyperlinkedModelSerializer): + # HyperlinkedModelSerializer doesn't include the id by default + id = serializers.Field() + class Meta: + model = Project + fields = ('id', + 'url', + 'name') + +class ReservationSerializer(serializers.HyperlinkedModelSerializer): + # HyperlinkedModelSerializer doesn't include the id by default + id = serializers.Field() + class Meta: + model = Reservation + fields = ('id', + 'url', + 'startTime', + 'slice', + 'duration', + 'endTime', + ) + class RoleSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() class Meta: model = Role fields = ('id', - 'role_id', - 'role_type') + 'url', + 'role', + 'role_type') -class UserSerializer(serializers.HyperlinkedModelSerializer): +class ServiceClassSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() - site = serializers.HyperlinkedRelatedField(view_name='site-detail') - slice_memberships = serializers.HyperlinkedRelatedField(view_name='slice-membership-detail') - site_privileges = serializers.HyperlinkedRelatedField(view_name='site-privilege-detail') class Meta: - model = User + model = ServiceClass fields = ('id', - 'user_id', - 'kuser_id', - 'firstname', - 'lastname', - 'email', - 'password', - 'phone', - 'user_url', - 'is_admin', - 'site', - 'slice_memberships', - 'site_privileges') - -class KeySerializer(serializers.HyperlinkedModelSerializer): + 'url', + 'name', + 'description', + 'commitment', + 'membershipFee', + 'membershipFeeMonths', + 'upgradeRequiresApproval', + 'upgradeFrom', + ) + +class ServiceResourceSerializer(serializers.HyperlinkedModelSerializer): + # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() - user = serializers.HyperlinkedRelatedField(view_name='user-detail') + serviceClass = serializers.HyperlinkedRelatedField(view_name='serviceclass-detail') class Meta: - model = Key + model = ServiceResource fields = ('id', - 'name', - 'key', - 'type', - 'blacklisted', - 'user') - + 'url', + 'name', + 'serviceClass', + 'maxUnitsDeployment', + 'maxUnitsNode', + 'maxDuration', + 'bucketInRate', + 'bucketMaxSize', + 'cost', + 'calendarReservable', + ) class SliceSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default @@ -56,6 +113,7 @@ class SliceSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Slice fields = ('id', + 'url', 'tenant_id', 'enabled', 'name', @@ -66,19 +124,23 @@ class SliceSerializer(serializers.HyperlinkedModelSerializer): 'network_id', 'router_id', 'subnet_id', + 'imagePreference', + 'network', + 'mountDataSets', 'site', 'slivers', 'updated', 'created') -class SliceMembershipSerializer(serializers.HyperlinkedModelSerializer): +class SlicePrivilegeSerializer(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 + model = SlicePrivilege fields = ('id', + 'url', 'user', 'slice', 'role') @@ -118,78 +180,90 @@ class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = SitePrivilege fields = ('id', + 'url', 'user', 'site', 'role') -class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer): - - # HyperlinkedModelSerializer doesn't include the id by default - id = serializers.Field() - sites = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail') - class Meta: - model = DeploymentNetwork - fields = ('id', - 'name', - 'sites' - ) - class SliverSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() 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') + deploymentNetwork = serializers.HyperlinkedRelatedField(view_name='deployment-detail') node = serializers.HyperlinkedRelatedField(view_name='node-detail') - #slice = serializers.PrimaryKeyRelatedField(read_only=True) class Meta: model = Sliver fields = ('id', + 'url', 'instance_id', 'name', 'instance_name', 'ip', 'image', - 'key', 'slice', 'deploymentNetwork', 'node') -class NodeSerializer(serializers.HyperlinkedModelSerializer): +class UserSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() + site = serializers.HyperlinkedRelatedField(view_name='site-detail') + slice_privileges = serializers.HyperlinkedRelatedField(view_name='sliceprivilege-detail') + site_privileges = serializers.HyperlinkedRelatedField(view_name='siteprivilege-detail') class Meta: - model = Node + model = User fields = ('id', - 'name') - -class ImageSerializer(serializers.HyperlinkedModelSerializer): + 'url', + 'kuser_id', + 'firstname', + 'lastname', + 'email', + 'password', + 'phone', + 'public_key', + 'user_url', + 'is_admin', + 'slice_privileges', + 'site_privileges') + +class TagSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() + project = serializers.HyperlinkedRelatedField(view_name='project-detail') + #content_type = serializers.PrimaryKeyRelatedField(read_only=True) + content_type = serializers.RelatedField(source = "content_type") + content_object = serializers.RelatedField(source='content_object') class Meta: - model = Image - fields = ('id', - 'image_id', - 'name', - 'disk_format', - 'container_format') + model = Tag + fields = ('id', + 'url', + 'project', + 'value', + 'content_type', + 'object_id', + 'content_object', + 'name') serializerLookUp = { + Deployment: DeploymentSerializer, + Image: ImageSerializer, + Node: NodeSerializer, + Project: ProjectSerializer, + Reservation: ReservationSerializer, Role: RoleSerializer, - User: UserSerializer, - Key: KeySerializer, + ServiceClass: ServiceClassSerializer, + ServiceResource: ServiceResourceSerializer, Site: SiteSerializer, SitePrivilege: SitePrivilegeSerializer, Slice: SliceSerializer, - SliceMembership: SliceMembershipSerializer, - Node: NodeSerializer, + SlicePrivilege: SlicePrivilegeSerializer, Sliver: SliverSerializer, - DeploymentNetwork: DeploymentNetworkSerializer, - Image: ImageSerializer, + Tag: TagSerializer, + User: UserSerializer, None: None, }