def queryset(self, request):
return SitePrivilege.select_by_user(request.user)
-class SiteDeploymentInline(PlStackTabularInline):
- model = SiteDeployment
+class SiteDeploymentsInline(PlStackTabularInline):
+ model = SiteDeployments
extra = 0
suit_classes = 'suit-tab suit-tab-deployments'
fields = ['backend_status_icon', 'deployment','site']
if db_field.name == 'deployment':
kwargs['queryset'] = Deployment.select_by_user(request.user)
- return super(SiteDeploymentInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
+ return super(SiteDeploymentsInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
def queryset(self, request):
- return SiteDeployment.select_by_user(request.user)
+ return SiteDeployments.select_by_user(request.user)
class SlicePrivilegeInline(PlStackTabularInline):
# create/destroy the through models ourselves. There has to be
# a better way...
- self.manipulate_m2m_objs(deployment, self.cleaned_data['sites'], deployment.sitedeployments.all(), SiteDeployment, "deployment", "site")
+ self.manipulate_m2m_objs(deployment, self.cleaned_data['sites'], deployment.sitedeployments.all(), SiteDeployments, "deployment", "site")
self.manipulate_m2m_objs(deployment, self.cleaned_data['images'], deployment.imagedeployments.all(), ImageDeployment, "deployment", "image")
self.save_m2m()
list_display = ('backend_status_icon', 'name', 'login_base','site_url', 'enabled')
list_display_links = ('backend_status_icon', 'name', )
filter_horizontal = ('deployments',)
- inlines = [SliceInline,UserInline,TagInline, NodeInline, SitePrivilegeInline, SiteDeploymentInline]
+ inlines = [SliceInline,UserInline,TagInline, NodeInline, SitePrivilegeInline, SiteDeploymentsInline]
search_fields = ['name']
def queryset(self, request):
from .service import ServiceAttribute
from .tag import Tag
from .role import Role
-from .site import Site,Deployment, DeploymentRole, DeploymentPrivilege, SiteDeployment
+from .site import Site,Deployment, DeploymentRole, DeploymentPrivilege, SiteDeployments
from .dashboard import DashboardView
from .user import User, UserDashboardView
from .serviceclass import ServiceClass
from .site import DeploymentLinkManager,DeploymentLinkDeletionManager
from .slice import Slice, SliceDeployment
-from .site import SitePrivilege, SiteDeployment
+from .site import SitePrivilege, SiteDeployments
from .userdeployments import UserDeployment
from .image import Image, ImageDeployment
from .node import Node
abbreviated_name = models.CharField(max_length=80)
#deployments = models.ManyToManyField('Deployment', blank=True, related_name='sites')
- deployments = models.ManyToManyField('Deployment', through='SiteDeployment', blank=True, help_text="Select which sites are allowed to host nodes in this deployment", related_name='sites')
+ deployments = models.ManyToManyField('Deployment', through='SiteDeployments', blank=True, help_text="Select which sites are allowed to host nodes in this deployment", related_name='sites')
tags = generic.GenericRelation(Tag)
def __unicode__(self): return u'%s' % (self.name)
qs = DeploymentPrivilege.objects.filter(id__in=dpriv_ids)
return qs
-class SiteDeployment(PlCoreBase):
+class SiteDeployments(PlCoreBase):
objects = DeploymentLinkManager()
deleted_objects = DeploymentLinkDeletionManager()
-from core.models import Site, SiteDeployment
+from core.models import Site, SiteDeployments
from observer.deleter import Deleter
-from observer.deleters.site_deployment_deleter import SiteDeploymentDeleter
+from observer.deleters.site_deployment_deleter import SiteDeploymentsDeleter
class SiteDeleter(Deleter):
model='Site'
def call(self, pk):
site = Site.objects.get(pk=pk)
- site_deployments = SiteDeployment.objects.filter(site=site)
- site_deployment_deleter = SiteDeploymentDeleter()
+ site_deployments = SiteDeployments.objects.filter(site=site)
+ site_deployment_deleter = SiteDeploymentsDeleter()
for site_deployment in site_deployments:
site_deployment_deleter(site_deployment.id)
site.delete()
-from core.models import Site, SiteDeployment
+from core.models import Site, SiteDeployments
from observer.deleter import Deleter
-class SiteDeploymentDeleter(Deleter):
- model='SiteDeployment'
+class SiteDeploymentsDeleter(Deleter):
+ model='SiteDeployments'
def call(self, pk):
- site_deployment = SiteDeployment.objects.get(pk=pk)
+ site_deployment = SiteDeployments.objects.get(pk=pk)
if site_deployment.tenant_id:
driver = self.driver.admin_driver(deployment=site_deployment.deployment.name)
driver.delete_tenant(site_deployment.tenant_id)
return []
deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
- current_site_deployments = SiteDeployment.objects.filter(Q(deployment=deployment))
+ current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
zone_ret = aws_run('ec2 describe-availability-zones')
zones = zone_ret['AvailabilityZones']
from ec2_observer.awslib import *
import pdb
-class SyncSiteDeployment(SyncStep):
+class SyncSiteDeployments(SyncStep):
requested_interval=86400
- provides=[SiteDeployment]
+ provides=[SiteDeployments]
def fetch_pending(self, deletion):
if (deletion):
# The syncstep should catch it
# At any rate, we should not run if there are no deployments
deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
- current_site_deployments = SiteDeployment.objects.filter(Q(deployment=deployment))
+ current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
site_dict = {}
for sd in current_site_deployments:
try:
site_record = site_dict[site]
except KeyError:
- sd = SiteDeployment(site=site,deployment=deployment,tenant_id=base64.urlsafe_b64encode(os.urandom(12)))
+ sd = SiteDeployments(site=site,deployment=deployment,tenant_id=base64.urlsafe_b64encode(os.urandom(12)))
updated_site_deployments.append(sd)
return updated_site_deployments
return []
deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
- current_site_deployments = SiteDeployment.objects.filter(Q(deployment=deployment))
+ current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
zone_ret = aws_run('ec2 describe-availability-zones')
zones = zone_ret['AvailabilityZones']
url(r'plstackapi/userdashboardviews/(?P<pk>[a-zA-Z0-9\-]+)/$', UserDashboardViewDetail.as_view(), name ='userdashboardview-detail'),
# url(r'plstackapi/userdashboardviews/!new/$', UserDashboardViewNew.as_view(), name ='userdashboardview-new'),
- url(r'plstackapi/sitedeployments/$', SiteDeploymentList.as_view(), name='sitedeployment-list'),
- url(r'plstackapi/sitedeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteDeploymentDetail.as_view(), name ='sitedeployment-detail'),
-# url(r'plstackapi/sitedeployments/!new/$', SiteDeploymentNew.as_view(), name ='sitedeployment-new'),
+ url(r'plstackapi/sitedeployments/$', SiteDeploymentsList.as_view(), name='sitedeployment-list'),
+ url(r'plstackapi/sitedeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteDeploymentsDetail.as_view(), name ='sitedeployment-detail'),
+# url(r'plstackapi/sitedeployments/!new/$', SiteDeploymentsNew.as_view(), name ='sitedeployment-new'),
url(r'plstackapi/planetstackprivileges/$', PlanetStackPrivilegeList.as_view(), name='planetstackprivilege-list'),
url(r'plstackapi/planetstackprivileges/(?P<pk>[a-zA-Z0-9\-]+)/$', PlanetStackPrivilegeDetail.as_view(), name ='planetstackprivilege-detail'),
-class SiteDeploymentSerializer(serializers.HyperlinkedModelSerializer):
+class SiteDeploymentsSerializer(serializers.HyperlinkedModelSerializer):
id = serializers.Field()
class Meta:
- model = SiteDeployment
+ model = SiteDeployments
fields = ('id','created','updated','enacted','backend_status','deleted','site','deployment','tenant_id',)
-class SiteDeploymentIdSerializer(serializers.ModelSerializer):
+class SiteDeploymentsIdSerializer(serializers.ModelSerializer):
id = serializers.Field()
class Meta:
- model = SiteDeployment
+ model = SiteDeployments
fields = ('id','created','updated','enacted','backend_status','deleted','site','deployment','tenant_id',)
UserDashboardView: UserDashboardViewSerializer,
- SiteDeployment: SiteDeploymentSerializer,
+ SiteDeployments: SiteDeploymentsSerializer,
PlanetStackPrivilege: PlanetStackPrivilegeSerializer,
-class SiteDeploymentList(generics.ListCreateAPIView):
- queryset = SiteDeployment.objects.select_related().all()
- serializer_class = SiteDeploymentSerializer
- id_serializer_class = SiteDeploymentIdSerializer
+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',)
return self.serializer_class
def get_queryset(self):
- return SiteDeployment.select_by_user(self.request.user)
+ return SiteDeployments.select_by_user(self.request.user)
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.DATA, files=request.FILES)
obj = serializer.object
obj.caller = request.user
if obj.can_update(request.user):
- return super(SiteDeploymentList, self).create(request, *args, **kwargs)
+ return super(SiteDeploymentsList, self).create(request, *args, **kwargs)
else:
raise Exception("failed obj.can_update")
- ret = super(SiteDeploymentList, self).create(request, *args, **kwargs)
+ ret = super(SiteDeploymentsList, self).create(request, *args, **kwargs)
if (ret.status_code%100 != 200):
raise Exception(ret.data)
return ret
-class SiteDeploymentDetail(PlanetStackRetrieveUpdateDestroyAPIView):
- queryset = SiteDeployment.objects.select_related().all()
- serializer_class = SiteDeploymentSerializer
- id_serializer_class = SiteDeploymentIdSerializer
+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)
return self.serializer_class
def get_queryset(self):
- return SiteDeployment.select_by_user(self.request.user)
+ return SiteDeployments.select_by_user(self.request.user)
# update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
filled with defaults. I solved it another way, so this code may soon be
abandoned.
-class SiteDeploymentNew(GenericAPIView):
- serializer_class = SiteDeploymentSerializer
- id_serializer_class = SiteDeploymentIdSerializer
+class SiteDeploymentsNew(GenericAPIView):
+ serializer_class = SiteDeploymentsSerializer
+ id_serializer_class = SiteDeploymentsIdSerializer
def get(self, request, *args, **kwargs):
return self.makenew(request, *args, **kwargs)
return self.serializer_class
def makenew(self, request, *args, **kwargs):
- obj = SiteDeployment()
+ obj = SiteDeployments()
serializer = self.get_serializer(obj)
return Response(serializer.data)
"""
def handle(slice):
- from core.models import SiteDeployment,SliceDeployment,Deployment,Network,NetworkSlice,NetworkTemplate
+ from core.models import SiteDeployments,SliceDeployment,Deployment,Network,NetworkSlice,NetworkTemplate
from collections import defaultdict
- site_deployments = SiteDeployment.objects.all()
+ site_deployments = SiteDeployments.objects.all()
site_deploy_lookup = defaultdict(list)
for site_deployment in site_deployments:
site_deploy_lookup[site_deployment.site].append(site_deployment.deployment)
from core.models import *
def handle(user):
- from core.models import Deployment,SiteDeployment,UserDeployment
+ from core.models import Deployment,SiteDeployments,UserDeployment
from collections import defaultdict
deployments = Deployment.objects.all()
- site_deployments = SiteDeployment.objects.all()
+ site_deployments = SiteDeployments.objects.all()
site_deploy_lookup = defaultdict(list)
for site_deployment in site_deployments:
site_deploy_lookup[site_deployment.site].append(site_deployment.deployment)
from core.models.site import *
from observer.ansible import *
-class SyncSiteDeployment(OpenStackSyncStep):
+class SyncSiteDeployments(OpenStackSyncStep):
requested_interval=0
- provides=[SiteDeployment, Site]
+ provides=[SiteDeployments, Site]
def sync_record(self, site_deployment):
from django.db.models import F, Q
from planetstack.config import Config
from observer.openstacksyncstep import OpenStackSyncStep
-from core.models import User, UserDeployment, SitePrivilege, SiteDeployment
+from core.models import User, UserDeployment, SitePrivilege, SiteDeployments
class SyncSitePrivileges(OpenStackSyncStep):
requested_interval=0
def sync_record(self, site_priv):
# sync site privileges at all site deployments
- site_deployments = SiteDeployment.objects.filter(site=site_priv.site)
+ site_deployments = SiteDeployments.objects.filter(site=site_priv.site)
for site_deployment in site_deployments:
user_deployments = UserDeployment.objects.filter(deployment=site_deployment.deployment)
if user_deployments:
site.save()
def delete_record(self, site):
- site_deployments = SiteDeployment.objects.filter(site=site)
- site_deployment_deleter = SyncSiteDeployment().delete_record
+ site_deployments = SiteDeployments.objects.filter(site=site)
+ site_deployment_deleter = SyncSiteDeployments().delete_record
for site_deployment in site_deployments:
site_deployment_deleter(site_deployment)
from django.db.models import F, Q
from planetstack.config import Config
from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.site import Deployment, SiteDeployment
+from core.models.site import Deployment, SiteDeployments
from core.models.slice import Slice, SliceDeployment
from core.models.userdeployments import UserDeployment
from util.logger import Logger, logging
from django.db.models import F, Q
from planetstack.config import Config
from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.site import SiteDeployment, Deployment
+from core.models.site import SiteDeployments, Deployment
from core.models.user import User
from core.models.userdeployments import UserDeployment
from util.logger import Logger, logging
roles = []
# setup user deployment home site roles
if user_deployment.user.site:
- site_deployments = SiteDeployment.objects.filter(site=user_deployment.user.site,
+ site_deployments = SiteDeployments.objects.filter(site=user_deployment.user.site,
deployment=user_deployment.deployment)
if site_deployments:
# need the correct tenant id for site at the deployment
if user_deployment.user.is_admin:
roles.append('admin')
else:
- raise Exception('Internal error. Missing SiteDeployment for user %s'%user_deployment.user.email)
+ raise Exception('Internal error. Missing SiteDeployments for user %s'%user_deployment.user.email)
else:
raise Exception('Siteless user %s'%user_deployment.user.email)