X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fserializers.py;h=3fb726d19f85991b9b334ab4406a3d3a22d38002;hb=0093647259a08b6a8ac35bab421a2a4d3a194f19;hp=00d71601d246ddb3bb4d4f8a67ca0a842a4777f0;hpb=0f521bb7500792d126355be3e8e21aa361fbc19b;p=plstackapi.git diff --git a/planetstack/core/serializers.py b/planetstack/core/serializers.py index 00d7160..3fb726d 100644 --- a/planetstack/core/serializers.py +++ b/planetstack/core/serializers.py @@ -3,40 +3,108 @@ 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', - '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', - 'public_key', - 'user_url', - 'is_admin', - 'site', - 'slice_memberships', - 'site_privileges') - + 'url', + 'name', + 'description', + 'commitment', + 'membershipFee', + 'membershipFeeMonths', + 'upgradeRequiresApproval', + 'upgradeFrom', + ) + +class ServiceResourceSerializer(serializers.HyperlinkedModelSerializer): + # HyperlinkedModelSerializer doesn't include the id by default + id = serializers.Field() + serviceClass = serializers.HyperlinkedRelatedField(view_name='serviceclass-detail') + class Meta: + model = ServiceResource + fields = ('id', + 'url', + 'name', + 'serviceClass', + 'maxUnitsDeployment', + 'maxUnitsNode', + 'maxDuration', + 'bucketInRate', + 'bucketMaxSize', + 'cost', + 'calendarReservable', + ) + class SliceSerializer(serializers.HyperlinkedModelSerializer): # HyperlinkedModelSerializer doesn't include the id by default id = serializers.Field() @@ -45,6 +113,7 @@ class SliceSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Slice fields = ('id', + 'url', 'tenant_id', 'enabled', 'name', @@ -55,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') @@ -107,77 +180,90 @@ class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = SitePrivilege fields = ('id', + 'url', 'user', 'site', 'role') -class DeploymentSerializer(serializers.HyperlinkedModelSerializer): - - # HyperlinkedModelSerializer doesn't include the id by default - id = serializers.Field() - sites = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail') - class Meta: - model = Deployment - 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, + ServiceClass: ServiceClassSerializer, + ServiceResource: ServiceResourceSerializer, Site: SiteSerializer, SitePrivilege: SitePrivilegeSerializer, Slice: SliceSerializer, - SliceMembership: SliceMembershipSerializer, - Node: NodeSerializer, + SlicePrivilege: SlicePrivilegeSerializer, Sliver: SliverSerializer, - Deployment: DeploymentSerializer, - Image: ImageSerializer, + Tag: TagSerializer, + User: UserSerializer, None: None, }