X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fgenapi.py;h=d633b2d5b09c85af6eebbd1693e19629b34cbdd9;hb=2c17efb52596bb1c2b36b48ba61fe4e7db3d5e68;hp=27f668553123b353479bc8d8a50934df4c90c6ed;hpb=643b70979a1baf6b9da44560768cd35c5aa9e435;p=plstackapi.git diff --git a/planetstack/genapi.py b/planetstack/genapi.py index 27f6685..d633b2d 100644 --- a/planetstack/genapi.py +++ b/planetstack/genapi.py @@ -2,8 +2,11 @@ from rest_framework.decorators import api_view from rest_framework.response import Response from rest_framework.reverse import reverse from rest_framework import serializers +from rest_framework import generics +from rest_framework import status from core.models import * from django.forms import widgets +from rest_framework import filters """ Schema of the generator object: @@ -34,33 +37,41 @@ def api_root(request, format=None): 'sliceprivileges': reverse('sliceprivilege-list', request=request, format=format), 'planetstackroles': reverse('planetstackrole-list', request=request, format=format), 'networkslivers': reverse('networksliver-list', request=request, format=format), + 'networkdeploymentses': reverse('networkdeployments-list', request=request, format=format), + 'flavors': reverse('flavor-list', request=request, format=format), 'projects': reverse('project-list', request=request, format=format), 'slices': reverse('slice-list', request=request, format=format), 'networks': reverse('network-list', request=request, format=format), 'services': reverse('service-list', request=request, format=format), 'serviceclasses': reverse('serviceclass-list', request=request, format=format), - 'siteroles': reverse('siterole-list', request=request, format=format), + 'payments': reverse('payment-list', request=request, format=format), 'charges': reverse('charge-list', request=request, format=format), 'roles': reverse('role-list', request=request, format=format), 'usableobjects': reverse('usableobject-list', request=request, format=format), + 'siteroles': reverse('siterole-list', request=request, format=format), + 'slicecredentials': reverse('slicecredential-list', request=request, format=format), 'slivers': reverse('sliver-list', request=request, format=format), 'nodes': reverse('node-list', request=request, format=format), + 'dashboardviews': reverse('dashboardview-list', request=request, format=format), + 'imagedeploymentses': reverse('imagedeployments-list', request=request, format=format), 'reservedresources': reverse('reservedresource-list', request=request, format=format), - 'payments': reverse('payment-list', request=request, format=format), 'networkslices': reverse('networkslice-list', request=request, format=format), + 'userdashboardviews': reverse('userdashboardview-list', request=request, format=format), 'planetstackprivileges': reverse('planetstackprivilege-list', request=request, format=format), 'users': reverse('user-list', request=request, format=format), 'deployments': reverse('deployment-list', request=request, format=format), 'reservations': reverse('reservation-list', request=request, format=format), + 'slicedeploymentses': reverse('slicedeployments-list', request=request, format=format), 'siteprivileges': reverse('siteprivilege-list', request=request, format=format), - 'singletonmodels': reverse('singletonmodel-list', request=request, format=format), 'planetstacks': reverse('planetstack-list', request=request, format=format), + 'userdeploymentses': reverse('userdeployments-list', request=request, format=format), 'accounts': reverse('account-list', request=request, format=format), 'networkparametertypes': reverse('networkparametertype-list', request=request, format=format), - 'sitedeploymentses': reverse('sitedeployments-list', request=request, format=format), + 'sitecredentials': reverse('sitecredential-list', request=request, format=format), 'deploymentprivileges': reverse('deploymentprivilege-list', request=request, format=format), 'deploymentroles': reverse('deploymentrole-list', request=request, format=format), - 'plcorebases': reverse('plcorebase-list', request=request, format=format), + 'usercredentials': reverse('usercredential-list', request=request, format=format), + 'sitedeploymentses': reverse('sitedeployments-list', request=request, format=format), 'slicetags': reverse('slicetag-list', request=request, format=format), 'networktemplates': reverse('networktemplate-list', request=request, format=format), 'routers': reverse('router-list', request=request, format=format), @@ -72,152 +83,463 @@ def api_root(request, format=None): -class ServiceattributeSerializer(serializers.HyperlinkedModelSerializer): +class ServiceAttributeSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - - service = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='service-detail') - + class Meta: + model = ServiceAttribute + fields = ('id','created','updated','enacted','backend_status','deleted','name','value','service',) + +class ServiceAttributeIdSerializer(serializers.ModelSerializer): + id = serializers.Field() class Meta: - model = serviceattribute - fields = ('id','created','updated','enacted','name','value',) + model = ServiceAttribute + fields = ('id','created','updated','enacted','backend_status','deleted','name','value','service',) + + class ImageSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() class Meta: - model = image - fields = ('id','created','updated','enacted','image_id','name','disk_format','container_format',) + model = Image + fields = ('id','created','updated','enacted','backend_status','deleted','name','disk_format','container_format','path',) + +class ImageIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + + class Meta: + model = Image + fields = ('id','created','updated','enacted','backend_status','deleted','name','disk_format','container_format','path',) + -class NetworkparameterSerializer(serializers.HyperlinkedModelSerializer): + +class NetworkParameterSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + + class Meta: + model = NetworkParameter + fields = ('id','created','updated','enacted','backend_status','deleted','parameter','value','content_type','object_id',) + +class NetworkParameterIdSerializer(serializers.ModelSerializer): id = serializers.Field() class Meta: - model = networkparameter - fields = ('id','created','updated','enacted','parameter','value','content_type','object_id',) + model = NetworkParameter + fields = ('id','created','updated','enacted','backend_status','deleted','parameter','value','content_type','object_id',) + + class SiteSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() class Meta: - model = site - fields = ('id','created','updated','enacted','tenant_id','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name',) + model = Site + fields = ('id','created','updated','enacted','backend_status','deleted','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name',) + +class SiteIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + + class Meta: + model = Site + fields = ('id','created','updated','enacted','backend_status','deleted','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name',) -class SliceroleSerializer(serializers.HyperlinkedModelSerializer): + + +class SliceRoleSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + + class Meta: + model = SliceRole + fields = ('id','created','updated','enacted','backend_status','deleted','role',) + +class SliceRoleIdSerializer(serializers.ModelSerializer): id = serializers.Field() class Meta: - model = slicerole - fields = ('id','created','updated','enacted','role',) + model = SliceRole + fields = ('id','created','updated','enacted','backend_status','deleted','role',) + + class TagSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() + class Meta: + model = Tag + fields = ('id','created','updated','enacted','backend_status','deleted','service','name','value','content_type','object_id',) + +class TagIdSerializer(serializers.ModelSerializer): + id = serializers.Field() - sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail') + class Meta: + model = Tag + fields = ('id','created','updated','enacted','backend_status','deleted','service','name','value','content_type','object_id',) + + + + +class InvoiceSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = Invoice + fields = ('id','created','updated','enacted','backend_status','deleted','date','account',) + +class InvoiceIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + class Meta: + model = Invoice + fields = ('id','created','updated','enacted','backend_status','deleted','date','account',) + + + + +class SlicePrivilegeSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() - service = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='service-detail') + class Meta: + model = SlicePrivilege + fields = ('id','created','updated','enacted','backend_status','deleted','user','slice','role',) + +class SlicePrivilegeIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + class Meta: + model = SlicePrivilege + fields = ('id','created','updated','enacted','backend_status','deleted','user','slice','role',) + + + + +class PlanetStackRoleSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = PlanetStackRole + fields = ('id','created','updated','enacted','backend_status','deleted','role',) + +class PlanetStackRoleIdSerializer(serializers.ModelSerializer): + id = serializers.Field() - slices = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='slice-detail') + class Meta: + model = PlanetStackRole + fields = ('id','created','updated','enacted','backend_status','deleted','role',) + + + + +class NetworkSliverSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = NetworkSliver + fields = ('id','created','updated','enacted','backend_status','deleted','network','sliver','ip','port_id',) + +class NetworkSliverIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + class Meta: + model = NetworkSliver + fields = ('id','created','updated','enacted','backend_status','deleted','network','sliver','ip','port_id',) + + + + +class NetworkDeploymentsSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() - slivers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='sliver-detail') + class Meta: + model = NetworkDeployments + fields = ('id','created','updated','enacted','backend_status','deleted','network','deployment','net_id','router_id','subnet_id','subnet',) + +class NetworkDeploymentsIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + class Meta: + model = NetworkDeployments + fields = ('id','created','updated','enacted','backend_status','deleted','network','deployment','net_id','router_id','subnet_id','subnet',) + + + + +class FlavorSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = Flavor + fields = ('id','created','updated','enacted','backend_status','deleted','name','description','flavor','order','default',) + +class FlavorIdSerializer(serializers.ModelSerializer): + id = serializers.Field() - nodes = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='node-detail') + class Meta: + model = Flavor + fields = ('id','created','updated','enacted','backend_status','deleted','name','description','flavor','order','default',) + + + + +class ProjectSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = Project + fields = ('id','created','updated','enacted','backend_status','deleted','name',) + +class ProjectIdSerializer(serializers.ModelSerializer): + id = serializers.Field() class Meta: - model = tag - fields = ('id','created','updated','enacted','name','value','content_type','object_id',) + model = Project + fields = ('id','created','updated','enacted','backend_status','deleted','name',) -class InvoiceSerializer(serializers.HyperlinkedModelSerializer): + + +class SliceSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - account = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='account-detail') + networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') + + + + availableNetworks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') + + + + networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') + + + + networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') class Meta: - model = invoice - fields = ('id','created','updated','enacted','date',) - + model = Slice + fields = ('id','created','updated','enacted','backend_status','deleted','name','enabled','omf_friendly','description','slice_url','site','max_slivers','imagePreference','service','network','mountDataSets','serviceClass','creator','networks','availableNetworks','networks','networks',) -class SliceprivilegeSerializer(serializers.HyperlinkedModelSerializer): +class SliceIdSerializer(serializers.ModelSerializer): id = serializers.Field() - user = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='user-detail') + networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') + + availableNetworks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') - slices = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='slice-detail') + networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') - role = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='role-detail') + + + networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') class Meta: - model = sliceprivilege - fields = ('id','created','updated','enacted',) + model = Slice + fields = ('id','created','updated','enacted','backend_status','deleted','name','enabled','omf_friendly','description','slice_url','site','max_slivers','imagePreference','service','network','mountDataSets','serviceClass','creator','networks','availableNetworks','networks','networks',) + -class PlanetstackroleSerializer(serializers.HyperlinkedModelSerializer): + +class NetworkSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + + + routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail') + + + + availableRouters = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail') + + + + routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail') + + + + routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail') + + + class Meta: + model = Network + fields = ('id','created','updated','enacted','backend_status','deleted','name','template','subnet','ports','labels','owner','guaranteedBandwidth','permitAllSlices','network_id','router_id','subnet_id','routers','availableRouters','routers','routers',) + +class NetworkIdSerializer(serializers.ModelSerializer): id = serializers.Field() + + routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail') + + + + availableRouters = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail') + + + + routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail') + + + + routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail') + + class Meta: - model = planetstackrole - fields = ('id','created','updated','enacted','role',) + model = Network + fields = ('id','created','updated','enacted','backend_status','deleted','name','template','subnet','ports','labels','owner','guaranteedBandwidth','permitAllSlices','network_id','router_id','subnet_id','routers','availableRouters','routers','routers',) + -class NetworksliverSerializer(serializers.HyperlinkedModelSerializer): + +class ServiceSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() + class Meta: + model = Service + fields = ('id','created','updated','enacted','backend_status','deleted','description','enabled','name','versionNumber','published',) + +class ServiceIdSerializer(serializers.ModelSerializer): + id = serializers.Field() - networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') + class Meta: + model = Service + fields = ('id','created','updated','enacted','backend_status','deleted','description','enabled','name','versionNumber','published',) + + + + +class ServiceClassSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = ServiceClass + fields = ('id','created','updated','enacted','backend_status','deleted','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',) + +class ServiceClassIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + + class Meta: + model = ServiceClass + fields = ('id','created','updated','enacted','backend_status','deleted','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',) + + + + +class PaymentSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = Payment + fields = ('id','created','updated','enacted','backend_status','deleted','account','amount','date',) + +class PaymentIdSerializer(serializers.ModelSerializer): + id = serializers.Field() - slivers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='sliver-detail') + class Meta: + model = Payment + fields = ('id','created','updated','enacted','backend_status','deleted','account','amount','date',) + + + + +class ChargeSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = Charge + fields = ('id','created','updated','enacted','backend_status','deleted','account','slice','kind','state','date','object','amount','coreHours','invoice',) + +class ChargeIdSerializer(serializers.ModelSerializer): + id = serializers.Field() class Meta: - model = networksliver - fields = ('id','created','updated','enacted','ip','port_id',) + model = Charge + fields = ('id','created','updated','enacted','backend_status','deleted','account','slice','kind','state','date','object','amount','coreHours','invoice',) -class ProjectSerializer(serializers.HyperlinkedModelSerializer): + + +class RoleSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() class Meta: - model = project - fields = ('id','created','updated','enacted','name',) + model = Role + fields = ('id','created','updated','enacted','backend_status','deleted','role_type','role','description','content_type',) +class RoleIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + + class Meta: + model = Role + fields = ('id','created','updated','enacted','backend_status','deleted','role_type','role','description','content_type',) -class SliceSerializer(serializers.HyperlinkedModelSerializer): + + + +class UsableObjectSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() + class Meta: + model = UsableObject + fields = ('id','created','updated','enacted','backend_status','deleted','name',) + +class UsableObjectIdSerializer(serializers.ModelSerializer): + id = serializers.Field() - sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail') + class Meta: + model = UsableObject + fields = ('id','created','updated','enacted','backend_status','deleted','name',) + + + + +class SiteRoleSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = SiteRole + fields = ('id','created','updated','enacted','backend_status','deleted','role',) + +class SiteRoleIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + class Meta: + model = SiteRole + fields = ('id','created','updated','enacted','backend_status','deleted','role',) + + + + +class SliceCredentialSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() - service = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='service-detail') + class Meta: + model = SliceCredential + fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','key_id','enc_value',) + +class SliceCredentialIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + class Meta: + model = SliceCredential + fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','key_id','enc_value',) + + + + +class SliverSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') @@ -228,111 +550,187 @@ class SliceSerializer(serializers.HyperlinkedModelSerializer): class Meta: - model = slice - fields = ('id','created','updated','enacted','tenant_id','name','enabled','omf_friendly','description','slice_url','network_id','router_id','subnet_id','serviceClass','creator',) - + model = Sliver + fields = ('id','created','updated','enacted','backend_status','deleted','instance_id','name','instance_name','ip','image','creator','slice','node','deploymentNetwork','numberCores','flavor','userData','networks','networks',) -class NetworkSerializer(serializers.HyperlinkedModelSerializer): +class SliverIdSerializer(serializers.ModelSerializer): id = serializers.Field() - routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail') + networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') - routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail') + networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') class Meta: - model = network - fields = ('id','created','updated','enacted','name','template','subnet','ports','labels','owner','guaranteedBandwidth','permitAllSlices','network_id','router_id','subnet_id',) + model = Sliver + fields = ('id','created','updated','enacted','backend_status','deleted','instance_id','name','instance_name','ip','image','creator','slice','node','deploymentNetwork','numberCores','flavor','userData','networks','networks',) -class ServiceSerializer(serializers.HyperlinkedModelSerializer): + + +class NodeSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() class Meta: - model = service - fields = ('id','created','updated','enacted','description','enabled','name','versionNumber','published',) + model = Node + fields = ('id','created','updated','enacted','backend_status','deleted','name','site','deployment',) - -class ServiceclassSerializer(serializers.HyperlinkedModelSerializer): +class NodeIdSerializer(serializers.ModelSerializer): id = serializers.Field() class Meta: - model = serviceclass - fields = ('id','created','updated','enacted','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',) + model = Node + fields = ('id','created','updated','enacted','backend_status','deleted','name','site','deployment',) + + -class SiteroleSerializer(serializers.HyperlinkedModelSerializer): +class DashboardViewSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + + class Meta: + model = DashboardView + fields = ('id','created','updated','enacted','backend_status','deleted','name','url',) + +class DashboardViewIdSerializer(serializers.ModelSerializer): id = serializers.Field() class Meta: - model = siterole - fields = ('id','created','updated','enacted','role',) + model = DashboardView + fields = ('id','created','updated','enacted','backend_status','deleted','name','url',) -class ChargeSerializer(serializers.HyperlinkedModelSerializer): + + +class ImageDeploymentsSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() + class Meta: + model = ImageDeployments + fields = ('id','created','updated','enacted','backend_status','deleted','image','deployment','glance_image_id',) + +class ImageDeploymentsIdSerializer(serializers.ModelSerializer): + id = serializers.Field() - account = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='account-detail') + class Meta: + model = ImageDeployments + fields = ('id','created','updated','enacted','backend_status','deleted','image','deployment','glance_image_id',) + + + + +class ReservedResourceSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = ReservedResource + fields = ('id','created','updated','enacted','backend_status','deleted','sliver','resource','quantity','reservationSet',) + +class ReservedResourceIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + class Meta: + model = ReservedResource + fields = ('id','created','updated','enacted','backend_status','deleted','sliver','resource','quantity','reservationSet',) + + + + +class NetworkSliceSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() - slices = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='slice-detail') + class Meta: + model = NetworkSlice + fields = ('id','created','updated','enacted','backend_status','deleted','network','slice',) + +class NetworkSliceIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + class Meta: + model = NetworkSlice + fields = ('id','created','updated','enacted','backend_status','deleted','network','slice',) + + + + +class UserDashboardViewSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = UserDashboardView + fields = ('id','created','updated','enacted','backend_status','deleted','user','dashboardView','order',) + +class UserDashboardViewIdSerializer(serializers.ModelSerializer): + id = serializers.Field() - invoice = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='invoice-detail') + class Meta: + model = UserDashboardView + fields = ('id','created','updated','enacted','backend_status','deleted','user','dashboardView','order',) + + + + +class PlanetStackPrivilegeSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + class Meta: + model = PlanetStackPrivilege + fields = ('id','created','updated','enacted','backend_status','deleted','user','planetstack','role',) + +class PlanetStackPrivilegeIdSerializer(serializers.ModelSerializer): + id = serializers.Field() class Meta: - model = charge - fields = ('id','created','updated','enacted','kind','state','date','object','amount','coreHours',) + model = PlanetStackPrivilege + fields = ('id','created','updated','enacted','backend_status','deleted','user','planetstack','role',) -class RoleSerializer(serializers.HyperlinkedModelSerializer): + + +class UserSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() class Meta: - model = role - fields = ('id','created','updated','enacted','role_type','role','description','content_type',) - + model = User + fields = ('id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','created','updated','enacted','backend_status','deleted','timezone',) -class UsableobjectSerializer(serializers.HyperlinkedModelSerializer): +class UserIdSerializer(serializers.ModelSerializer): id = serializers.Field() class Meta: - model = usableobject - fields = ('id','created','updated','enacted','name',) + model = User + fields = ('id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','created','updated','enacted','backend_status','deleted','timezone',) -class SliverSerializer(serializers.HyperlinkedModelSerializer): + + +class DeploymentSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') + sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail') - image = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='image-detail') + sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail') - slices = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='slice-detail') + flavors = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='flavor-detail') - nodes = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='node-detail') + flavors = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='flavor-detail') class Meta: - model = sliver - fields = ('id','created','updated','enacted','instance_id','name','instance_name','ip','creator','deploymentNetwork','numberCores',) + model = Deployment + fields = ('id','created','updated','enacted','backend_status','deleted','name','admin_user','admin_password','admin_tenant','auth_url','backend_type','availability_zone','accessControl','sites','sites','flavors','flavors',) - -class NodeSerializer(serializers.HyperlinkedModelSerializer): +class DeploymentIdSerializer(serializers.ModelSerializer): id = serializers.Field() @@ -340,275 +738,321 @@ class NodeSerializer(serializers.HyperlinkedModelSerializer): - deployment = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='deployment-detail') + sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail') + + + + flavors = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='flavor-detail') + + + flavors = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='flavor-detail') + + + class Meta: + model = Deployment + fields = ('id','created','updated','enacted','backend_status','deleted','name','admin_user','admin_password','admin_tenant','auth_url','backend_type','availability_zone','accessControl','sites','sites','flavors','flavors',) + + + + +class ReservationSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + + class Meta: + model = Reservation + fields = ('id','created','updated','enacted','backend_status','deleted','startTime','slice','duration',) + +class ReservationIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + + class Meta: + model = Reservation + fields = ('id','created','updated','enacted','backend_status','deleted','startTime','slice','duration',) + + + + +class SliceDeploymentsSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + + class Meta: + model = SliceDeployments + fields = ('id','created','updated','enacted','backend_status','deleted','slice','deployment','tenant_id','network_id','router_id','subnet_id',) + +class SliceDeploymentsIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + + class Meta: + model = SliceDeployments + fields = ('id','created','updated','enacted','backend_status','deleted','slice','deployment','tenant_id','network_id','router_id','subnet_id',) + + + + +class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + + class Meta: + model = SitePrivilege + fields = ('id','created','updated','enacted','backend_status','deleted','user','site','role',) + +class SitePrivilegeIdSerializer(serializers.ModelSerializer): + id = serializers.Field() + + class Meta: + model = SitePrivilege + fields = ('id','created','updated','enacted','backend_status','deleted','user','site','role',) + + + + +class PlanetStackSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.Field() + + class Meta: + model = PlanetStack + fields = ('id','created','updated','enacted','backend_status','deleted','description',) + +class PlanetStackIdSerializer(serializers.ModelSerializer): + id = serializers.Field() class Meta: - model = node - fields = ('id','created','updated','enacted','name',) + model = PlanetStack + fields = ('id','created','updated','enacted','backend_status','deleted','description',) -class ReservedresourceSerializer(serializers.HyperlinkedModelSerializer): + + +class UserDeploymentsSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - - slivers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='sliver-detail') - - class Meta: - model = reservedresource - fields = ('id','created','updated','enacted','resource','quantity','reservationSet',) - + model = UserDeployments + fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','kuser_id',) -class PaymentSerializer(serializers.HyperlinkedModelSerializer): +class UserDeploymentsIdSerializer(serializers.ModelSerializer): id = serializers.Field() - - account = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='account-detail') - - class Meta: - model = payment - fields = ('id','created','updated','enacted','amount','date',) + model = UserDeployments + fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','kuser_id',) + + -class NetworksliceSerializer(serializers.HyperlinkedModelSerializer): +class AccountSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - - networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail') - - - - slices = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='slice-detail') - - class Meta: - model = networkslice - fields = ('id','created','updated','enacted',) + model = Account + fields = ('id','created','updated','enacted','backend_status','deleted','site',) - -class PlanetstackprivilegeSerializer(serializers.HyperlinkedModelSerializer): +class AccountIdSerializer(serializers.ModelSerializer): id = serializers.Field() - - user = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='user-detail') - - - - planetstack = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='planetstack-detail') - - - - role = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='role-detail') - - class Meta: - model = planetstackprivilege - fields = ('id','created','updated','enacted',) + model = Account + fields = ('id','created','updated','enacted','backend_status','deleted','site',) -class UserSerializer(serializers.HyperlinkedModelSerializer): + + +class NetworkParameterTypeSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - - sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail') - - class Meta: - model = user - fields = ('id','password','last_login','email','username','kuser_id','firstname','lastname','phone','user_url','public_key','is_active','is_admin','is_staff','is_readonly','created','updated','enacted','timezone',) - + model = NetworkParameterType + fields = ('id','created','updated','enacted','backend_status','deleted','name','description',) -class DeploymentSerializer(serializers.HyperlinkedModelSerializer): +class NetworkParameterTypeIdSerializer(serializers.ModelSerializer): id = serializers.Field() - - sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail') - - class Meta: - model = deployment - fields = ('id','created','updated','enacted','name',) + model = NetworkParameterType + fields = ('id','created','updated','enacted','backend_status','deleted','name','description',) -class ReservationSerializer(serializers.HyperlinkedModelSerializer): + + +class SiteCredentialSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - - slices = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='slice-detail') - + class Meta: + model = SiteCredential + fields = ('id','created','updated','enacted','backend_status','deleted','site','name','key_id','enc_value',) + +class SiteCredentialIdSerializer(serializers.ModelSerializer): + id = serializers.Field() class Meta: - model = reservation - fields = ('id','created','updated','enacted','startTime','duration',) + model = SiteCredential + fields = ('id','created','updated','enacted','backend_status','deleted','site','name','key_id','enc_value',) + -class SiteprivilegeSerializer(serializers.HyperlinkedModelSerializer): + +class DeploymentPrivilegeSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - - user = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='user-detail') - - - - sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail') - - - - role = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='role-detail') - + class Meta: + model = DeploymentPrivilege + fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','role',) + +class DeploymentPrivilegeIdSerializer(serializers.ModelSerializer): + id = serializers.Field() class Meta: - model = siteprivilege - fields = ('id','created','updated','enacted',) + model = DeploymentPrivilege + fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','role',) + -class SingletonmodelSerializer(serializers.HyperlinkedModelSerializer): + +class DeploymentRoleSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() class Meta: - model = singletonmodel - fields = () - + model = DeploymentRole + fields = ('id','created','updated','enacted','backend_status','deleted','role',) -class PlanetstackSerializer(serializers.HyperlinkedModelSerializer): +class DeploymentRoleIdSerializer(serializers.ModelSerializer): id = serializers.Field() class Meta: - model = planetstack - fields = ('id','created','updated','enacted','description',) + model = DeploymentRole + fields = ('id','created','updated','enacted','backend_status','deleted','role',) -class AccountSerializer(serializers.HyperlinkedModelSerializer): + + +class UserCredentialSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - - sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail') - - class Meta: - model = account - fields = ('id','created','updated','enacted',) - + model = UserCredential + fields = ('id','created','updated','enacted','backend_status','deleted','user','name','key_id','enc_value',) -class NetworkparametertypeSerializer(serializers.HyperlinkedModelSerializer): +class UserCredentialIdSerializer(serializers.ModelSerializer): id = serializers.Field() class Meta: - model = networkparametertype - fields = ('id','created','updated','enacted','name','description',) + model = UserCredential + fields = ('id','created','updated','enacted','backend_status','deleted','user','name','key_id','enc_value',) -class SitedeploymentsSerializer(serializers.HyperlinkedModelSerializer): + + +class SiteDeploymentsSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - - sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail') - - - - deployment = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='deployment-detail') - + class Meta: + model = SiteDeployments + fields = ('id','created','updated','enacted','backend_status','deleted','site','deployment','tenant_id',) + +class SiteDeploymentsIdSerializer(serializers.ModelSerializer): + id = serializers.Field() class Meta: - model = sitedeployments - fields = ('id','created','updated','enacted',) + model = SiteDeployments + fields = ('id','created','updated','enacted','backend_status','deleted','site','deployment','tenant_id',) + -class DeploymentprivilegeSerializer(serializers.HyperlinkedModelSerializer): + +class SliceTagSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - - user = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='user-detail') - - - - deployment = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='deployment-detail') - - - - role = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='role-detail') - + class Meta: + model = SliceTag + fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','value',) + +class SliceTagIdSerializer(serializers.ModelSerializer): + id = serializers.Field() class Meta: - model = deploymentprivilege - fields = ('id','created','updated','enacted',) + model = SliceTag + fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','value',) -class DeploymentroleSerializer(serializers.HyperlinkedModelSerializer): + + +class NetworkTemplateSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() class Meta: - model = deploymentrole - fields = ('id','created','updated','enacted','role',) + model = NetworkTemplate + fields = ('id','created','updated','enacted','backend_status','deleted','name','description','guaranteedBandwidth','visibility','translation','sharedNetworkName','sharedNetworkId',) - -class PlcorebaseSerializer(serializers.HyperlinkedModelSerializer): +class NetworkTemplateIdSerializer(serializers.ModelSerializer): id = serializers.Field() class Meta: - model = plcorebase - fields = ('created','updated','enacted',) + model = NetworkTemplate + fields = ('id','created','updated','enacted','backend_status','deleted','name','description','guaranteedBandwidth','visibility','translation','sharedNetworkName','sharedNetworkId',) + -class SlicetagSerializer(serializers.HyperlinkedModelSerializer): + +class RouterSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() - - slices = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='slice-detail') - - class Meta: - model = slicetag - fields = ('id','created','updated','enacted','name','value',) - + model = Router + fields = ('id','created','updated','enacted','backend_status','deleted','name','owner',) -class NetworktemplateSerializer(serializers.HyperlinkedModelSerializer): +class RouterIdSerializer(serializers.ModelSerializer): id = serializers.Field() class Meta: - model = networktemplate - fields = ('id','created','updated','enacted','name','description','guaranteedBandwidth','visibility','translation','sharedNetworkName','sharedNetworkId',) + model = Router + fields = ('id','created','updated','enacted','backend_status','deleted','name','owner',) -class RouterSerializer(serializers.HyperlinkedModelSerializer): + + +class ServiceResourceSerializer(serializers.HyperlinkedModelSerializer): id = serializers.Field() class Meta: - model = router - fields = ('id','created','updated','enacted','name','owner',) - + model = ServiceResource + fields = ('id','created','updated','enacted','backend_status','deleted','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',) -class ServiceresourceSerializer(serializers.HyperlinkedModelSerializer): +class ServiceResourceIdSerializer(serializers.ModelSerializer): id = serializers.Field() class Meta: - model = serviceresource - fields = ('id','created','updated','enacted','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',) + model = ServiceResource + fields = ('id','created','updated','enacted','backend_status','deleted','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',) + + serializerLookUp = { - Serviceattribute: ServiceattributeSerializer, + ServiceAttribute: ServiceAttributeSerializer, Image: ImageSerializer, - Networkparameter: NetworkparameterSerializer, + NetworkParameter: NetworkParameterSerializer, Site: SiteSerializer, - Slicerole: SliceroleSerializer, + SliceRole: SliceRoleSerializer, Tag: TagSerializer, Invoice: InvoiceSerializer, - Sliceprivilege: SliceprivilegeSerializer, + SlicePrivilege: SlicePrivilegeSerializer, - Planetstackrole: PlanetstackroleSerializer, + PlanetStackRole: PlanetStackRoleSerializer, - Networksliver: NetworksliverSerializer, + NetworkSliver: NetworkSliverSerializer, + + NetworkDeployments: NetworkDeploymentsSerializer, + + Flavor: FlavorSerializer, Project: ProjectSerializer, @@ -618,27 +1062,35 @@ serializerLookUp = { Service: ServiceSerializer, - Serviceclass: ServiceclassSerializer, + ServiceClass: ServiceClassSerializer, - Siterole: SiteroleSerializer, + Payment: PaymentSerializer, Charge: ChargeSerializer, Role: RoleSerializer, - Usableobject: UsableobjectSerializer, + UsableObject: UsableObjectSerializer, + + SiteRole: SiteRoleSerializer, + + SliceCredential: SliceCredentialSerializer, Sliver: SliverSerializer, Node: NodeSerializer, - Reservedresource: ReservedresourceSerializer, + DashboardView: DashboardViewSerializer, - Payment: PaymentSerializer, + ImageDeployments: ImageDeploymentsSerializer, + + ReservedResource: ReservedResourceSerializer, + + NetworkSlice: NetworkSliceSerializer, - Networkslice: NetworksliceSerializer, + UserDashboardView: UserDashboardViewSerializer, - Planetstackprivilege: PlanetstackprivilegeSerializer, + PlanetStackPrivilege: PlanetStackPrivilegeSerializer, User: UserSerializer, @@ -646,445 +1098,2387 @@ serializerLookUp = { Reservation: ReservationSerializer, - Siteprivilege: SiteprivilegeSerializer, + SliceDeployments: SliceDeploymentsSerializer, - Singletonmodel: SingletonmodelSerializer, + SitePrivilege: SitePrivilegeSerializer, - Planetstack: PlanetstackSerializer, + PlanetStack: PlanetStackSerializer, + + UserDeployments: UserDeploymentsSerializer, Account: AccountSerializer, - Networkparametertype: NetworkparametertypeSerializer, + NetworkParameterType: NetworkParameterTypeSerializer, + + SiteCredential: SiteCredentialSerializer, - Sitedeployments: SitedeploymentsSerializer, + DeploymentPrivilege: DeploymentPrivilegeSerializer, - Deploymentprivilege: DeploymentprivilegeSerializer, + DeploymentRole: DeploymentRoleSerializer, - Deploymentrole: DeploymentroleSerializer, + UserCredential: UserCredentialSerializer, - Plcorebase: PlcorebaseSerializer, + SiteDeployments: SiteDeploymentsSerializer, - Slicetag: SlicetagSerializer, + SliceTag: SliceTagSerializer, - Networktemplate: NetworktemplateSerializer, + NetworkTemplate: NetworkTemplateSerializer, Router: RouterSerializer, - Serviceresource: ServiceresourceSerializer, + ServiceResource: ServiceResourceSerializer, None: None, } -# Based on core/views/*.py - +class PlanetStackRetrieveUpdateDestroyAPIView(generics.RetrieveUpdateDestroyAPIView): + + # To handle fine-grained field permissions, we have to check can_update + # the object has been updated but before it has been saved. + + def update(self, request, *args, **kwargs): + partial = kwargs.pop('partial', False) + self.object = self.get_object_or_none() + + serializer = self.get_serializer(self.object, data=request.DATA, + files=request.FILES, partial=partial) + + if not serializer.is_valid(): + print "UpdateModelMixin: not serializer.is_valid" + print serializer.errors + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + + try: + self.pre_save(serializer.object) + except ValidationError as err: + # full_clean on model instance may be called in pre_save, + # so we have to handle eventual errors. + return Response(err.message_dict, status=status.HTTP_400_BAD_REQUEST) + + if serializer.object is not None: + if not serializer.object.can_update(request.user): + return Response(status=status.HTTP_400_BAD_REQUEST) + + if self.object is None: + self.object = serializer.save(force_insert=True) + self.post_save(self.object, created=True) + return Response(serializer.data, status=status.HTTP_201_CREATED) + + self.object = serializer.save(force_update=True) + self.post_save(self.object, created=False) + return Response(serializer.data, status=status.HTTP_200_OK) + + def destroy(self, request, *args, **kwargs): + obj = self.get_object() + if obj.can_update(request.user): + return super(Detail, self).destroy(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) -class ServiceattributeList(generics.ListCreateAPIView): - queryset = Serviceattribute.objects.select_related.all() - serializer_class = ServiceattributeSerializer -class ServiceattributeDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Serviceattribute.objects.select_related.all() - serializer_class = ServiceattributeSerializer +# Based on core/views/*.py +class ServiceAttributeList(generics.ListCreateAPIView): + queryset = ServiceAttribute.objects.select_related().all() + serializer_class = ServiceAttributeSerializer + id_serializer_class = ServiceAttributeIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','value','service',) -class ImageList(generics.ListCreateAPIView): - queryset = Image.objects.select_related.all() - serializer_class = ImageSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class -class ImageDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Image.objects.select_related.all() - serializer_class = ImageSerializer + def get_queryset(self): + return ServiceAttribute.select_by_user(self.request.user) + def create(self, request, *args, **kwargs): + #obj = ServiceAttribute().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(ServiceAttributeList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) +class ServiceAttributeDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = ServiceAttribute.objects.select_related().all() + serializer_class = ServiceAttributeSerializer + id_serializer_class = ServiceAttributeIdSerializer -class NetworkparameterList(generics.ListCreateAPIView): - queryset = Networkparameter.objects.select_related.all() - serializer_class = NetworkparameterSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return ServiceAttribute.select_by_user(self.request.user) -class NetworkparameterDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Networkparameter.objects.select_related.all() - serializer_class = NetworkparameterSerializer + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class SiteList(generics.ListCreateAPIView): - queryset = Site.objects.select_related.all() - serializer_class = SiteSerializer -class SiteDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Site.objects.select_related.all() - serializer_class = SiteSerializer +class ImageList(generics.ListCreateAPIView): + queryset = Image.objects.select_related().all() + serializer_class = ImageSerializer + id_serializer_class = ImageIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','disk_format','container_format','path',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Image.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Image().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(ImageList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class ImageDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Image.objects.select_related().all() + serializer_class = ImageSerializer + id_serializer_class = ImageIdSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Image.select_by_user(self.request.user) + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class SliceroleList(generics.ListCreateAPIView): - queryset = Slicerole.objects.select_related.all() - serializer_class = SliceroleSerializer + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class SliceroleDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Slicerole.objects.select_related.all() - serializer_class = SliceroleSerializer +class NetworkParameterList(generics.ListCreateAPIView): + queryset = NetworkParameter.objects.select_related().all() + serializer_class = NetworkParameterSerializer + id_serializer_class = NetworkParameterIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','parameter','value','content_type','object_id',) -class TagList(generics.ListCreateAPIView): - queryset = Tag.objects.select_related.all() - serializer_class = TagSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class -class TagDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Tag.objects.select_related.all() - serializer_class = TagSerializer + def get_queryset(self): + return NetworkParameter.select_by_user(self.request.user) + def create(self, request, *args, **kwargs): + #obj = NetworkParameter().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(NetworkParameterList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) +class NetworkParameterDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = NetworkParameter.objects.select_related().all() + serializer_class = NetworkParameterSerializer + id_serializer_class = NetworkParameterIdSerializer -class InvoiceList(generics.ListCreateAPIView): - queryset = Invoice.objects.select_related.all() - serializer_class = InvoiceSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return NetworkParameter.select_by_user(self.request.user) -class InvoiceDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Invoice.objects.select_related.all() - serializer_class = InvoiceSerializer + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class SliceprivilegeList(generics.ListCreateAPIView): - queryset = Sliceprivilege.objects.select_related.all() - serializer_class = SliceprivilegeSerializer -class SliceprivilegeDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Sliceprivilege.objects.select_related.all() - serializer_class = SliceprivilegeSerializer +class SiteList(generics.ListCreateAPIView): + queryset = Site.objects.select_related().all() + serializer_class = SiteSerializer + id_serializer_class = SiteIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Site.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Site().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SiteList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class SiteDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Site.objects.select_related().all() + serializer_class = SiteSerializer + id_serializer_class = SiteIdSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Site.select_by_user(self.request.user) + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class PlanetstackroleList(generics.ListCreateAPIView): - queryset = Planetstackrole.objects.select_related.all() - serializer_class = PlanetstackroleSerializer + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class PlanetstackroleDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Planetstackrole.objects.select_related.all() - serializer_class = PlanetstackroleSerializer +class SliceRoleList(generics.ListCreateAPIView): + queryset = SliceRole.objects.select_related().all() + serializer_class = SliceRoleSerializer + id_serializer_class = SliceRoleIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','role',) -class NetworksliverList(generics.ListCreateAPIView): - queryset = Networksliver.objects.select_related.all() - serializer_class = NetworksliverSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class -class NetworksliverDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Networksliver.objects.select_related.all() - serializer_class = NetworksliverSerializer + def get_queryset(self): + return SliceRole.select_by_user(self.request.user) + def create(self, request, *args, **kwargs): + #obj = SliceRole().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SliceRoleList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) +class SliceRoleDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = SliceRole.objects.select_related().all() + serializer_class = SliceRoleSerializer + id_serializer_class = SliceRoleIdSerializer -class ProjectList(generics.ListCreateAPIView): - queryset = Project.objects.select_related.all() - serializer_class = ProjectSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SliceRole.select_by_user(self.request.user) -class ProjectDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Project.objects.select_related.all() - serializer_class = ProjectSerializer + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class SliceList(generics.ListCreateAPIView): - queryset = Slice.objects.select_related.all() - serializer_class = SliceSerializer -class SliceDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Slice.objects.select_related.all() - serializer_class = SliceSerializer +class TagList(generics.ListCreateAPIView): + queryset = Tag.objects.select_related().all() + serializer_class = TagSerializer + id_serializer_class = TagIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','service','name','value','content_type','object_id',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Tag.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Tag().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(TagList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class TagDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Tag.objects.select_related().all() + serializer_class = TagSerializer + id_serializer_class = TagIdSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Tag.select_by_user(self.request.user) + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class NetworkList(generics.ListCreateAPIView): - queryset = Network.objects.select_related.all() - serializer_class = NetworkSerializer + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class NetworkDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Network.objects.select_related.all() - serializer_class = NetworkSerializer +class InvoiceList(generics.ListCreateAPIView): + queryset = Invoice.objects.select_related().all() + serializer_class = InvoiceSerializer + id_serializer_class = InvoiceIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','date','account',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Invoice.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Invoice().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(InvoiceList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class InvoiceDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Invoice.objects.select_related().all() + serializer_class = InvoiceSerializer + id_serializer_class = InvoiceIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Invoice.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class SlicePrivilegeList(generics.ListCreateAPIView): + queryset = SlicePrivilege.objects.select_related().all() + serializer_class = SlicePrivilegeSerializer + id_serializer_class = SlicePrivilegeIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','slice','role',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SlicePrivilege.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = SlicePrivilege().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SlicePrivilegeList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class SlicePrivilegeDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = SlicePrivilege.objects.select_related().all() + serializer_class = SlicePrivilegeSerializer + id_serializer_class = SlicePrivilegeIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SlicePrivilege.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class PlanetStackRoleList(generics.ListCreateAPIView): + queryset = PlanetStackRole.objects.select_related().all() + serializer_class = PlanetStackRoleSerializer + id_serializer_class = PlanetStackRoleIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','role',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return PlanetStackRole.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = PlanetStackRole().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(PlanetStackRoleList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class PlanetStackRoleDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = PlanetStackRole.objects.select_related().all() + serializer_class = PlanetStackRoleSerializer + id_serializer_class = PlanetStackRoleIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return PlanetStackRole.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class NetworkSliverList(generics.ListCreateAPIView): + queryset = NetworkSliver.objects.select_related().all() + serializer_class = NetworkSliverSerializer + id_serializer_class = NetworkSliverIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','network','sliver','ip','port_id',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return NetworkSliver.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = NetworkSliver().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(NetworkSliverList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class NetworkSliverDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = NetworkSliver.objects.select_related().all() + serializer_class = NetworkSliverSerializer + id_serializer_class = NetworkSliverIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return NetworkSliver.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class NetworkDeploymentsList(generics.ListCreateAPIView): + queryset = NetworkDeployments.objects.select_related().all() + serializer_class = NetworkDeploymentsSerializer + id_serializer_class = NetworkDeploymentsIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','network','deployment','net_id','router_id','subnet_id','subnet',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return NetworkDeployments.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = NetworkDeployments().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(NetworkDeploymentsList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class NetworkDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = NetworkDeployments.objects.select_related().all() + serializer_class = NetworkDeploymentsSerializer + id_serializer_class = NetworkDeploymentsIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return NetworkDeployments.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class FlavorList(generics.ListCreateAPIView): + queryset = Flavor.objects.select_related().all() + serializer_class = FlavorSerializer + id_serializer_class = FlavorIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','description','flavor','order','default',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Flavor.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Flavor().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(FlavorList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class FlavorDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Flavor.objects.select_related().all() + serializer_class = FlavorSerializer + id_serializer_class = FlavorIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Flavor.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class ServiceList(generics.ListCreateAPIView): - queryset = Service.objects.select_related.all() - serializer_class = ServiceSerializer -class ServiceDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Service.objects.select_related.all() - serializer_class = ServiceSerializer +class ProjectList(generics.ListCreateAPIView): + queryset = Project.objects.select_related().all() + serializer_class = ProjectSerializer + id_serializer_class = ProjectIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Project.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Project().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(ProjectList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class ProjectDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Project.objects.select_related().all() + serializer_class = ProjectSerializer + id_serializer_class = ProjectIdSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Project.select_by_user(self.request.user) -class ServiceclassList(generics.ListCreateAPIView): - queryset = Serviceclass.objects.select_related.all() - serializer_class = ServiceclassSerializer + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class ServiceclassDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Serviceclass.objects.select_related.all() - serializer_class = ServiceclassSerializer + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class SiteroleList(generics.ListCreateAPIView): - queryset = Siterole.objects.select_related.all() - serializer_class = SiteroleSerializer +class SliceList(generics.ListCreateAPIView): + queryset = Slice.objects.select_related().all() + serializer_class = SliceSerializer + id_serializer_class = SliceIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','enabled','omf_friendly','description','slice_url','site','max_slivers','imagePreference','service','network','mountDataSets','serviceClass','creator','networks','availableNetworks','networks','networks',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Slice.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Slice().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SliceList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class SliceDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Slice.objects.select_related().all() + serializer_class = SliceSerializer + id_serializer_class = SliceIdSerializer -class SiteroleDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Siterole.objects.select_related.all() - serializer_class = SiteroleSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Slice.select_by_user(self.request.user) + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class ChargeList(generics.ListCreateAPIView): - queryset = Charge.objects.select_related.all() - serializer_class = ChargeSerializer -class ChargeDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Charge.objects.select_related.all() - serializer_class = ChargeSerializer +class NetworkList(generics.ListCreateAPIView): + queryset = Network.objects.select_related().all() + serializer_class = NetworkSerializer + id_serializer_class = NetworkIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','template','subnet','ports','labels','owner','guaranteedBandwidth','permitAllSlices','network_id','router_id','subnet_id','routers','availableRouters','routers','routers',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Network.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Network().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(NetworkList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class NetworkDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Network.objects.select_related().all() + serializer_class = NetworkSerializer + id_serializer_class = NetworkIdSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Network.select_by_user(self.request.user) -class RoleList(generics.ListCreateAPIView): - queryset = Role.objects.select_related.all() - serializer_class = RoleSerializer + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class RoleDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Role.objects.select_related.all() - serializer_class = RoleSerializer + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class UsableobjectList(generics.ListCreateAPIView): - queryset = Usableobject.objects.select_related.all() - serializer_class = UsableobjectSerializer +class ServiceList(generics.ListCreateAPIView): + queryset = Service.objects.select_related().all() + serializer_class = ServiceSerializer + id_serializer_class = ServiceIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','description','enabled','name','versionNumber','published',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Service.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Service().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(ServiceList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class ServiceDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Service.objects.select_related().all() + serializer_class = ServiceSerializer + id_serializer_class = ServiceIdSerializer -class UsableobjectDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Usableobject.objects.select_related.all() - serializer_class = UsableobjectSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Service.select_by_user(self.request.user) + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class SliverList(generics.ListCreateAPIView): - queryset = Sliver.objects.select_related.all() - serializer_class = SliverSerializer -class SliverDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Sliver.objects.select_related.all() - serializer_class = SliverSerializer +class ServiceClassList(generics.ListCreateAPIView): + queryset = ServiceClass.objects.select_related().all() + serializer_class = ServiceClassSerializer + id_serializer_class = ServiceClassIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',) + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class -class NodeList(generics.ListCreateAPIView): - queryset = Node.objects.select_related.all() - serializer_class = NodeSerializer + def get_queryset(self): + return ServiceClass.select_by_user(self.request.user) -class NodeDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Node.objects.select_related.all() - serializer_class = NodeSerializer + def create(self, request, *args, **kwargs): + #obj = ServiceClass().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(ServiceClassList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) +class ServiceClassDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = ServiceClass.objects.select_related().all() + serializer_class = ServiceClassSerializer + id_serializer_class = ServiceClassIdSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return ServiceClass.select_by_user(self.request.user) -class ReservedresourceList(generics.ListCreateAPIView): - queryset = Reservedresource.objects.select_related.all() - serializer_class = ReservedresourceSerializer + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class ReservedresourceDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Reservedresource.objects.select_related.all() - serializer_class = ReservedresourceSerializer + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView class PaymentList(generics.ListCreateAPIView): - queryset = Payment.objects.select_related.all() + queryset = Payment.objects.select_related().all() serializer_class = PaymentSerializer - -class PaymentDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Payment.objects.select_related.all() + id_serializer_class = PaymentIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','account','amount','date',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Payment.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Payment().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(PaymentList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class PaymentDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Payment.objects.select_related().all() serializer_class = PaymentSerializer + id_serializer_class = PaymentIdSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Payment.select_by_user(self.request.user) + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class NetworksliceList(generics.ListCreateAPIView): - queryset = Networkslice.objects.select_related.all() - serializer_class = NetworksliceSerializer - -class NetworksliceDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Networkslice.objects.select_related.all() - serializer_class = NetworksliceSerializer - + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class PlanetstackprivilegeList(generics.ListCreateAPIView): - queryset = Planetstackprivilege.objects.select_related.all() - serializer_class = PlanetstackprivilegeSerializer -class PlanetstackprivilegeDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Planetstackprivilege.objects.select_related.all() - serializer_class = PlanetstackprivilegeSerializer - - - -class UserList(generics.ListCreateAPIView): - queryset = User.objects.select_related.all() - serializer_class = UserSerializer - -class UserDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = User.objects.select_related.all() - serializer_class = UserSerializer - - - -class DeploymentList(generics.ListCreateAPIView): - queryset = Deployment.objects.select_related.all() - serializer_class = DeploymentSerializer - -class DeploymentDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Deployment.objects.select_related.all() - serializer_class = DeploymentSerializer - - - -class ReservationList(generics.ListCreateAPIView): - queryset = Reservation.objects.select_related.all() - serializer_class = ReservationSerializer - -class ReservationDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Reservation.objects.select_related.all() - serializer_class = ReservationSerializer - - - -class SiteprivilegeList(generics.ListCreateAPIView): - queryset = Siteprivilege.objects.select_related.all() - serializer_class = SiteprivilegeSerializer - -class SiteprivilegeDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Siteprivilege.objects.select_related.all() - serializer_class = SiteprivilegeSerializer - - - -class SingletonmodelList(generics.ListCreateAPIView): - queryset = Singletonmodel.objects.select_related.all() - serializer_class = SingletonmodelSerializer - -class SingletonmodelDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Singletonmodel.objects.select_related.all() - serializer_class = SingletonmodelSerializer - - - -class PlanetstackList(generics.ListCreateAPIView): - queryset = Planetstack.objects.select_related.all() - serializer_class = PlanetstackSerializer +class ChargeList(generics.ListCreateAPIView): + queryset = Charge.objects.select_related().all() + serializer_class = ChargeSerializer + id_serializer_class = ChargeIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','account','slice','kind','state','date','object','amount','coreHours','invoice',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Charge.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Charge().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(ChargeList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class ChargeDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Charge.objects.select_related().all() + serializer_class = ChargeSerializer + id_serializer_class = ChargeIdSerializer -class PlanetstackDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Planetstack.objects.select_related.all() - serializer_class = PlanetstackSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Charge.select_by_user(self.request.user) + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class AccountList(generics.ListCreateAPIView): - queryset = Account.objects.select_related.all() - serializer_class = AccountSerializer -class AccountDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Account.objects.select_related.all() - serializer_class = AccountSerializer +class RoleList(generics.ListCreateAPIView): + queryset = Role.objects.select_related().all() + serializer_class = RoleSerializer + id_serializer_class = RoleIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','role_type','role','description','content_type',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Role.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Role().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(RoleList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class RoleDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Role.objects.select_related().all() + serializer_class = RoleSerializer + id_serializer_class = RoleIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Role.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class UsableObjectList(generics.ListCreateAPIView): + queryset = UsableObject.objects.select_related().all() + serializer_class = UsableObjectSerializer + id_serializer_class = UsableObjectIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return UsableObject.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = UsableObject().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(UsableObjectList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class UsableObjectDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = UsableObject.objects.select_related().all() + serializer_class = UsableObjectSerializer + id_serializer_class = UsableObjectIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return UsableObject.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class SiteRoleList(generics.ListCreateAPIView): + queryset = SiteRole.objects.select_related().all() + serializer_class = SiteRoleSerializer + id_serializer_class = SiteRoleIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','role',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SiteRole.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = SiteRole().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SiteRoleList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class SiteRoleDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = SiteRole.objects.select_related().all() + serializer_class = SiteRoleSerializer + id_serializer_class = SiteRoleIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SiteRole.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class SliceCredentialList(generics.ListCreateAPIView): + queryset = SliceCredential.objects.select_related().all() + serializer_class = SliceCredentialSerializer + id_serializer_class = SliceCredentialIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','key_id','enc_value',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SliceCredential.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = SliceCredential().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SliceCredentialList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class SliceCredentialDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = SliceCredential.objects.select_related().all() + serializer_class = SliceCredentialSerializer + id_serializer_class = SliceCredentialIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SliceCredential.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class NetworkparametertypeList(generics.ListCreateAPIView): - queryset = Networkparametertype.objects.select_related.all() - serializer_class = NetworkparametertypeSerializer -class NetworkparametertypeDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Networkparametertype.objects.select_related.all() - serializer_class = NetworkparametertypeSerializer +class SliverList(generics.ListCreateAPIView): + queryset = Sliver.objects.select_related().all() + serializer_class = SliverSerializer + id_serializer_class = SliverIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','instance_id','name','instance_name','ip','image','creator','slice','node','deploymentNetwork','numberCores','flavor','userData','networks','networks',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Sliver.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Sliver().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SliverList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class SliverDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Sliver.objects.select_related().all() + serializer_class = SliverSerializer + id_serializer_class = SliverIdSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Sliver.select_by_user(self.request.user) + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class SitedeploymentsList(generics.ListCreateAPIView): - queryset = Sitedeployments.objects.select_related.all() - serializer_class = SitedeploymentsSerializer + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class SitedeploymentsDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Sitedeployments.objects.select_related.all() - serializer_class = SitedeploymentsSerializer +class NodeList(generics.ListCreateAPIView): + queryset = Node.objects.select_related().all() + serializer_class = NodeSerializer + id_serializer_class = NodeIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','site','deployment',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Node.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Node().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(NodeList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class NodeDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Node.objects.select_related().all() + serializer_class = NodeSerializer + id_serializer_class = NodeIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Node.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class DashboardViewList(generics.ListCreateAPIView): + queryset = DashboardView.objects.select_related().all() + serializer_class = DashboardViewSerializer + id_serializer_class = DashboardViewIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','url',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return DashboardView.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = DashboardView().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(DashboardViewList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class DashboardViewDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = DashboardView.objects.select_related().all() + serializer_class = DashboardViewSerializer + id_serializer_class = DashboardViewIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return DashboardView.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class ImageDeploymentsList(generics.ListCreateAPIView): + queryset = ImageDeployments.objects.select_related().all() + serializer_class = ImageDeploymentsSerializer + id_serializer_class = ImageDeploymentsIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','image','deployment','glance_image_id',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return ImageDeployments.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = ImageDeployments().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(ImageDeploymentsList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class ImageDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = ImageDeployments.objects.select_related().all() + serializer_class = ImageDeploymentsSerializer + id_serializer_class = ImageDeploymentsIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return ImageDeployments.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class ReservedResourceList(generics.ListCreateAPIView): + queryset = ReservedResource.objects.select_related().all() + serializer_class = ReservedResourceSerializer + id_serializer_class = ReservedResourceIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','sliver','resource','quantity','reservationSet',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return ReservedResource.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = ReservedResource().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(ReservedResourceList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class ReservedResourceDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = ReservedResource.objects.select_related().all() + serializer_class = ReservedResourceSerializer + id_serializer_class = ReservedResourceIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return ReservedResource.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class NetworkSliceList(generics.ListCreateAPIView): + queryset = NetworkSlice.objects.select_related().all() + serializer_class = NetworkSliceSerializer + id_serializer_class = NetworkSliceIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','network','slice',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return NetworkSlice.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = NetworkSlice().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(NetworkSliceList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class NetworkSliceDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = NetworkSlice.objects.select_related().all() + serializer_class = NetworkSliceSerializer + id_serializer_class = NetworkSliceIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return NetworkSlice.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class UserDashboardViewList(generics.ListCreateAPIView): + queryset = UserDashboardView.objects.select_related().all() + serializer_class = UserDashboardViewSerializer + id_serializer_class = UserDashboardViewIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','dashboardView','order',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return UserDashboardView.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = UserDashboardView().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(UserDashboardViewList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class UserDashboardViewDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = UserDashboardView.objects.select_related().all() + serializer_class = UserDashboardViewSerializer + id_serializer_class = UserDashboardViewIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return UserDashboardView.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class PlanetStackPrivilegeList(generics.ListCreateAPIView): + queryset = PlanetStackPrivilege.objects.select_related().all() + serializer_class = PlanetStackPrivilegeSerializer + id_serializer_class = PlanetStackPrivilegeIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','planetstack','role',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return PlanetStackPrivilege.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = PlanetStackPrivilege().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(PlanetStackPrivilegeList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class PlanetStackPrivilegeDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = PlanetStackPrivilege.objects.select_related().all() + serializer_class = PlanetStackPrivilegeSerializer + id_serializer_class = PlanetStackPrivilegeIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return PlanetStackPrivilege.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class DeploymentprivilegeList(generics.ListCreateAPIView): - queryset = Deploymentprivilege.objects.select_related.all() - serializer_class = DeploymentprivilegeSerializer -class DeploymentprivilegeDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Deploymentprivilege.objects.select_related.all() - serializer_class = DeploymentprivilegeSerializer +class UserList(generics.ListCreateAPIView): + queryset = User.objects.select_related().all() + serializer_class = UserSerializer + id_serializer_class = UserIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','created','updated','enacted','backend_status','deleted','timezone',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return User.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = User().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(UserList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class UserDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = User.objects.select_related().all() + serializer_class = UserSerializer + id_serializer_class = UserIdSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return User.select_by_user(self.request.user) -class DeploymentroleList(generics.ListCreateAPIView): - queryset = Deploymentrole.objects.select_related.all() - serializer_class = DeploymentroleSerializer + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class DeploymentroleDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Deploymentrole.objects.select_related.all() - serializer_class = DeploymentroleSerializer + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class PlcorebaseList(generics.ListCreateAPIView): - queryset = Plcorebase.objects.select_related.all() - serializer_class = PlcorebaseSerializer +class DeploymentList(generics.ListCreateAPIView): + queryset = Deployment.objects.select_related().all() + serializer_class = DeploymentSerializer + id_serializer_class = DeploymentIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','admin_user','admin_password','admin_tenant','auth_url','backend_type','availability_zone','accessControl','sites','sites','flavors','flavors',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Deployment.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Deployment().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(DeploymentList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class DeploymentDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Deployment.objects.select_related().all() + serializer_class = DeploymentSerializer + id_serializer_class = DeploymentIdSerializer -class PlcorebaseDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Plcorebase.objects.select_related.all() - serializer_class = PlcorebaseSerializer + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Deployment.select_by_user(self.request.user) + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class SlicetagList(generics.ListCreateAPIView): - queryset = Slicetag.objects.select_related.all() - serializer_class = SlicetagSerializer -class SlicetagDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Slicetag.objects.select_related.all() - serializer_class = SlicetagSerializer +class ReservationList(generics.ListCreateAPIView): + queryset = Reservation.objects.select_related().all() + serializer_class = ReservationSerializer + id_serializer_class = ReservationIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','startTime','slice','duration',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Reservation.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Reservation().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(ReservationList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class ReservationDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Reservation.objects.select_related().all() + serializer_class = ReservationSerializer + id_serializer_class = ReservationIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Reservation.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class SliceDeploymentsList(generics.ListCreateAPIView): + queryset = SliceDeployments.objects.select_related().all() + serializer_class = SliceDeploymentsSerializer + id_serializer_class = SliceDeploymentsIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','slice','deployment','tenant_id','network_id','router_id','subnet_id',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SliceDeployments.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = SliceDeployments().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SliceDeploymentsList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class SliceDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = SliceDeployments.objects.select_related().all() + serializer_class = SliceDeploymentsSerializer + id_serializer_class = SliceDeploymentsIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SliceDeployments.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class SitePrivilegeList(generics.ListCreateAPIView): + queryset = SitePrivilege.objects.select_related().all() + serializer_class = SitePrivilegeSerializer + id_serializer_class = SitePrivilegeIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','site','role',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SitePrivilege.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = SitePrivilege().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SitePrivilegeList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class SitePrivilegeDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = SitePrivilege.objects.select_related().all() + serializer_class = SitePrivilegeSerializer + id_serializer_class = SitePrivilegeIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SitePrivilege.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class PlanetStackList(generics.ListCreateAPIView): + queryset = PlanetStack.objects.select_related().all() + serializer_class = PlanetStackSerializer + id_serializer_class = PlanetStackIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','description',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return PlanetStack.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = PlanetStack().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(PlanetStackList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class PlanetStackDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = PlanetStack.objects.select_related().all() + serializer_class = PlanetStackSerializer + id_serializer_class = PlanetStackIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return PlanetStack.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class UserDeploymentsList(generics.ListCreateAPIView): + queryset = UserDeployments.objects.select_related().all() + serializer_class = UserDeploymentsSerializer + id_serializer_class = UserDeploymentsIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','kuser_id',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return UserDeployments.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = UserDeployments().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(UserDeploymentsList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class UserDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = UserDeployments.objects.select_related().all() + serializer_class = UserDeploymentsSerializer + id_serializer_class = UserDeploymentsIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return UserDeployments.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView -class NetworktemplateList(generics.ListCreateAPIView): - queryset = Networktemplate.objects.select_related.all() - serializer_class = NetworktemplateSerializer -class NetworktemplateDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Networktemplate.objects.select_related.all() - serializer_class = NetworktemplateSerializer +class AccountList(generics.ListCreateAPIView): + queryset = Account.objects.select_related().all() + serializer_class = AccountSerializer + id_serializer_class = AccountIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','site',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Account.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Account().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(AccountList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class AccountDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Account.objects.select_related().all() + serializer_class = AccountSerializer + id_serializer_class = AccountIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Account.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class NetworkParameterTypeList(generics.ListCreateAPIView): + queryset = NetworkParameterType.objects.select_related().all() + serializer_class = NetworkParameterTypeSerializer + id_serializer_class = NetworkParameterTypeIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','description',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return NetworkParameterType.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = NetworkParameterType().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(NetworkParameterTypeList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class NetworkParameterTypeDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = NetworkParameterType.objects.select_related().all() + serializer_class = NetworkParameterTypeSerializer + id_serializer_class = NetworkParameterTypeIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return NetworkParameterType.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class SiteCredentialList(generics.ListCreateAPIView): + queryset = SiteCredential.objects.select_related().all() + serializer_class = SiteCredentialSerializer + id_serializer_class = SiteCredentialIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','site','name','key_id','enc_value',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SiteCredential.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = SiteCredential().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SiteCredentialList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class SiteCredentialDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = SiteCredential.objects.select_related().all() + serializer_class = SiteCredentialSerializer + id_serializer_class = SiteCredentialIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SiteCredential.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class DeploymentPrivilegeList(generics.ListCreateAPIView): + queryset = DeploymentPrivilege.objects.select_related().all() + serializer_class = DeploymentPrivilegeSerializer + id_serializer_class = DeploymentPrivilegeIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','role',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return DeploymentPrivilege.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = DeploymentPrivilege().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(DeploymentPrivilegeList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class DeploymentPrivilegeDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = DeploymentPrivilege.objects.select_related().all() + serializer_class = DeploymentPrivilegeSerializer + id_serializer_class = DeploymentPrivilegeIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return DeploymentPrivilege.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class DeploymentRoleList(generics.ListCreateAPIView): + queryset = DeploymentRole.objects.select_related().all() + serializer_class = DeploymentRoleSerializer + id_serializer_class = DeploymentRoleIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','role',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return DeploymentRole.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = DeploymentRole().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(DeploymentRoleList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class DeploymentRoleDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = DeploymentRole.objects.select_related().all() + serializer_class = DeploymentRoleSerializer + id_serializer_class = DeploymentRoleIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return DeploymentRole.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class UserCredentialList(generics.ListCreateAPIView): + queryset = UserCredential.objects.select_related().all() + serializer_class = UserCredentialSerializer + id_serializer_class = UserCredentialIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','name','key_id','enc_value',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return UserCredential.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = UserCredential().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(UserCredentialList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class UserCredentialDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = UserCredential.objects.select_related().all() + serializer_class = UserCredentialSerializer + id_serializer_class = UserCredentialIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return UserCredential.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class SiteDeploymentsList(generics.ListCreateAPIView): + queryset = SiteDeployments.objects.select_related().all() + serializer_class = SiteDeploymentsSerializer + id_serializer_class = SiteDeploymentsIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','site','deployment','tenant_id',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SiteDeployments.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = SiteDeployments().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SiteDeploymentsList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class SiteDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = SiteDeployments.objects.select_related().all() + serializer_class = SiteDeploymentsSerializer + id_serializer_class = SiteDeploymentsIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SiteDeployments.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class SliceTagList(generics.ListCreateAPIView): + queryset = SliceTag.objects.select_related().all() + serializer_class = SliceTagSerializer + id_serializer_class = SliceTagIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','value',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SliceTag.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = SliceTag().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(SliceTagList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class SliceTagDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = SliceTag.objects.select_related().all() + serializer_class = SliceTagSerializer + id_serializer_class = SliceTagIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return SliceTag.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class NetworkTemplateList(generics.ListCreateAPIView): + queryset = NetworkTemplate.objects.select_related().all() + serializer_class = NetworkTemplateSerializer + id_serializer_class = NetworkTemplateIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','description','guaranteedBandwidth','visibility','translation','sharedNetworkName','sharedNetworkId',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return NetworkTemplate.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = NetworkTemplate().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(NetworkTemplateList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class NetworkTemplateDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = NetworkTemplate.objects.select_related().all() + serializer_class = NetworkTemplateSerializer + id_serializer_class = NetworkTemplateIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return NetworkTemplate.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView class RouterList(generics.ListCreateAPIView): - queryset = Router.objects.select_related.all() + queryset = Router.objects.select_related().all() serializer_class = RouterSerializer - -class RouterDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Router.objects.select_related.all() + id_serializer_class = RouterIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','owner',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Router.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = Router().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(RouterList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class RouterDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = Router.objects.select_related().all() serializer_class = RouterSerializer - - - -class ServiceresourceList(generics.ListCreateAPIView): - queryset = Serviceresource.objects.select_related.all() - serializer_class = ServiceresourceSerializer - -class ServiceresourceDetail(generics.RetrieveUpdateDestroyAPIView): - queryset = Serviceresource.objects.select_related.all() - serializer_class = ServiceresourceSerializer + id_serializer_class = RouterIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return Router.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + + +class ServiceResourceList(generics.ListCreateAPIView): + queryset = ServiceResource.objects.select_related().all() + serializer_class = ServiceResourceSerializer + id_serializer_class = ServiceResourceIdSerializer + filter_backends = (filters.DjangoFilterBackend,) + filter_fields = ('id','created','updated','enacted','backend_status','deleted','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',) + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return ServiceResource.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = ServiceResource().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super(ServiceResourceList, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + +class ServiceResourceDetail(PlanetStackRetrieveUpdateDestroyAPIView): + queryset = ServiceResource.objects.select_related().all() + serializer_class = ServiceResourceSerializer + id_serializer_class = ServiceResourceIdSerializer + + def get_serializer_class(self): + no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False) + if (no_hyperlinks): + return self.id_serializer_class + else: + return self.serializer_class + + def get_queryset(self): + return ServiceResource.select_by_user(self.request.user) + + # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView + + # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView