Renamed SliceDeployment back to SliceDeployments
authorSapan Bhatia <sapanb@cs.princeton.edu>
Wed, 19 Nov 2014 20:09:38 +0000 (15:09 -0500)
committerSapan Bhatia <sapanb@cs.princeton.edu>
Wed, 19 Nov 2014 20:09:38 +0000 (15:09 -0500)
16 files changed:
planetstack/core/admin.py
planetstack/core/migrations/0001_initial.py
planetstack/core/models/__init__.py
planetstack/core/models/slice.py
planetstack/ec2_observer/deleters/slice_deleter.py
planetstack/ec2_observer/deleters/slice_deployment_deleter.py
planetstack/ec2_observer/deleters/sliver_deleter.py
planetstack/ec2_observer/steps/sync_slivers.py
planetstack/genapi.py
planetstack/model_policies/model_policy_Network.py
planetstack/model_policies/model_policy_Slice.py
planetstack/openstack_observer/steps/sync_slice_deployments.py
planetstack/openstack_observer/steps/sync_slice_memberships.py
planetstack/openstack_observer/steps/sync_slices.py
planetstack/openstack_observer/steps/sync_slivers.py
planetstack/syndicate_observer/syndicatelib_config/config.py [changed from symlink to file mode: 0644]

index de766fc..747062c 100644 (file)
@@ -762,8 +762,8 @@ class SliceForm(forms.ModelForm):
             raise forms.ValidationError('slice name must begin with %s' % site.login_base)
         return cleaned_data
 
             raise forms.ValidationError('slice name must begin with %s' % site.login_base)
         return cleaned_data
 
-class SliceDeploymentInline(PlStackTabularInline):
-    model = SliceDeployment
+class SliceDeploymentsInline(PlStackTabularInline):
+    model = SliceDeployments
     extra = 0
     verbose_name = "Slice Deployment"
     verbose_name_plural = "Slice Deployments"
     extra = 0
     verbose_name = "Slice Deployment"
     verbose_name_plural = "Slice Deployments"
@@ -779,7 +779,7 @@ class SliceAdmin(PlanetStackBaseAdmin):
     list_display = ('backend_status_icon', 'name', 'site','serviceClass', 'slice_url', 'max_slivers')
     list_display_links = ('backend_status_icon', 'name', )
     inlines = [SlicePrivilegeInline,SliverInline, TagInline, ReservationInline,SliceNetworkInline]
     list_display = ('backend_status_icon', 'name', 'site','serviceClass', 'slice_url', 'max_slivers')
     list_display_links = ('backend_status_icon', 'name', )
     inlines = [SlicePrivilegeInline,SliverInline, TagInline, ReservationInline,SliceNetworkInline]
-    admin_inlines = [SliceDeploymentInline]
+    admin_inlines = [SliceDeploymentsInline]
 
     user_readonly_fields = fieldList
 
 
     user_readonly_fields = fieldList
 
index 58c0dc3..8523936 100644 (file)
@@ -778,7 +778,7 @@ class Migration(migrations.Migration):
             bases=(models.Model,),
         ),
         migrations.CreateModel(
             bases=(models.Model,),
         ),
         migrations.CreateModel(
-            name='SliceDeployments',
+            name='SliceDeploymentss',
             fields=[
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                 ('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
             fields=[
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                 ('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
index 09f4749..76c9590 100644 (file)
@@ -10,7 +10,7 @@ from .dashboard import DashboardView
 from .user import User, UserDashboardView
 from .serviceclass import ServiceClass
 from .site import DeploymentLinkManager,DeploymentLinkDeletionManager
 from .user import User, UserDashboardView
 from .serviceclass import ServiceClass
 from .site import DeploymentLinkManager,DeploymentLinkDeletionManager
-from .slice import Slice, SliceDeployment
+from .slice import Slice, SliceDeployments
 from .site import SitePrivilege, SiteDeployments
 from .userdeployments import UserDeployment
 from .image import Image, ImageDeployment
 from .site import SitePrivilege, SiteDeployments
 from .userdeployments import UserDeployment
 from .image import Image, ImageDeployment
index 24d02aa..128d605 100644 (file)
@@ -93,7 +93,7 @@ class Slice(PlCoreBase):
         nets = Network.objects.filter(slices=self)
         nets.delete() 
         # delete slice deployments
         nets = Network.objects.filter(slices=self)
         nets.delete() 
         # delete slice deployments
-        slice_deployments = SliceDeployments.objects.filter(slice=self)
+        slice_deployments = SliceDeploymentss.objects.filter(slice=self)
         slice_deployments.delete()
         # delete slice privilege
         slice_privileges = SlicePrivilege.objects.filter(slice=self)
         slice_deployments.delete()
         # delete slice privilege
         slice_privileges = SlicePrivilege.objects.filter(slice=self)
@@ -128,7 +128,7 @@ class SlicePrivilege(PlCoreBase):
             qs = SlicePrivilege.objects.filter(id__in=sp_ids)
         return qs
 
             qs = SlicePrivilege.objects.filter(id__in=sp_ids)
         return qs
 
-class SliceDeployment(PlCoreBase):
+class SliceDeployments(PlCoreBase):
     objects = DeploymentLinkManager()
     deleted_objects = DeploymentLinkDeletionManager()
 
     objects = DeploymentLinkManager()
     deleted_objects = DeploymentLinkDeletionManager()
 
@@ -144,8 +144,8 @@ class SliceDeployment(PlCoreBase):
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
     @staticmethod
     def select_by_user(user):
         if user.is_admin:
-            qs = SliceDeployment.objects.all()
+            qs = SliceDeployments.objects.all()
         else:
             slices = Slice.select_by_user(user)
         else:
             slices = Slice.select_by_user(user)
-            qs = SliceDeployment.objects.filter(slice__in=slices)
+            qs = SliceDeployments.objects.filter(slice__in=slices)
         return qs    
         return qs    
index e7c54e6..7e9dfd4 100644 (file)
@@ -1,6 +1,6 @@
-from core.models import Slice, SliceDeployment, User
+from core.models import Slice, SliceDeployments, User
 from observer.deleter import Deleter
 from observer.deleter import Deleter
-from observer.deleters.slice_deployment_deleter import SliceDeploymentDeleter
+from observer.deleters.slice_deployment_deleter import SliceDeploymentsDeleter
 from util.logger import Logger, logging
 
 logger = Logger(level=logging.INFO)
 from util.logger import Logger, logging
 
 logger = Logger(level=logging.INFO)
@@ -10,8 +10,8 @@ class SliceDeleter(Deleter):
 
     def call(self, pk):
         slice = Slice.objects.get(pk=pk)
 
     def call(self, pk):
         slice = Slice.objects.get(pk=pk)
-        slice_deployment_deleter = SliceDeploymentDeleter()
-        for slice_deployment in SliceDeployment.objects.filter(slice=slice):
+        slice_deployment_deleter = SliceDeploymentsDeleter()
+        for slice_deployment in SliceDeployments.objects.filter(slice=slice):
             try:
                 slice_deployment_deleter(slice_deployment.id)
             except:
             try:
                 slice_deployment_deleter(slice_deployment.id)
             except:
index 31d26fb..6f1aec0 100644 (file)
@@ -1,12 +1,12 @@
-from core.models import Slice, SliceDeployment, User
+from core.models import Slice, SliceDeployments, User
 from observer.deleter import Deleter
 from openstack.driver import OpenStackDriver
 
 from observer.deleter import Deleter
 from openstack.driver import OpenStackDriver
 
-class SliceDeploymentDeleter(Deleter):
-    model='SliceDeployment'
+class SliceDeploymentsDeleter(Deleter):
+    model='SliceDeployments'
 
     def call(self, pk):
 
     def call(self, pk):
-        slice_deployment = SliceDeployment.objects.get(pk=pk)
+        slice_deployment = SliceDeployments.objects.get(pk=pk)
         user = User.objects.get(id=slice_deployment.slice.creator.id)
         driver = OpenStackDriver().admin_driver(deployment=slice_deployment.deployment.name)
         client_driver = driver.client_driver(caller=user,
         user = User.objects.get(id=slice_deployment.slice.creator.id)
         driver = OpenStackDriver().admin_driver(deployment=slice_deployment.deployment.name)
         client_driver = driver.client_driver(caller=user,
index 732e535..097f0f7 100644 (file)
@@ -1,4 +1,4 @@
-from core.models import Sliver, SliceDeployment
+from core.models import Sliver, SliceDeployments
 from observer.deleter import Deleter
 
 class SliverDeleter(Deleter):
 from observer.deleter import Deleter
 
 class SliverDeleter(Deleter):
index ed75438..15cd5eb 100644 (file)
@@ -5,7 +5,7 @@ from django.db.models import F, Q
 from planetstack.config import Config
 from ec2_observer.syncstep import SyncStep
 from core.models.sliver import Sliver
 from planetstack.config import Config
 from ec2_observer.syncstep import SyncStep
 from core.models.sliver import Sliver
-from core.models.slice import SlicePrivilege, SliceDeployment
+from core.models.slice import SlicePrivilege, SliceDeployments
 from core.models.network import Network, NetworkSlice, NetworkDeployments
 from util.logger import Logger, logging
 from ec2_observer.awslib import *
 from core.models.network import Network, NetworkSlice, NetworkDeployments
 from util.logger import Logger, logging
 from ec2_observer.awslib import *
@@ -30,7 +30,7 @@ class SyncSlivers(SyncStep):
         my_slivers = [] 
 
         for sliver in all_slivers:
         my_slivers = [] 
 
         for sliver in all_slivers:
-            sd = SliceDeployment.objects.filter(Q(slice=sliver.slice))
+            sd = SliceDeployments.objects.filter(Q(slice=sliver.slice))
             if (sd):
                 if (sd.deployment.name=='Amazon EC2'):
                     my_slivers.append(sliver)
             if (sd):
                 if (sd.deployment.name=='Amazon EC2'):
                     my_slivers.append(sliver)
index 724789e..bac66d8 100644 (file)
@@ -172,9 +172,9 @@ def get_REST_patterns():
         url(r'plstackapi/siteprivileges/(?P<pk>[a-zA-Z0-9\-]+)/$', SitePrivilegeDetail.as_view(), name ='siteprivilege-detail'),
 #        url(r'plstackapi/siteprivileges/!new/$', SitePrivilegeNew.as_view(), name ='siteprivilege-new'),
     
         url(r'plstackapi/siteprivileges/(?P<pk>[a-zA-Z0-9\-]+)/$', SitePrivilegeDetail.as_view(), name ='siteprivilege-detail'),
 #        url(r'plstackapi/siteprivileges/!new/$', SitePrivilegeNew.as_view(), name ='siteprivilege-new'),
     
-        url(r'plstackapi/slicedeployments/$', SliceDeploymentList.as_view(), name='slicedeployment-list'),
-        url(r'plstackapi/slicedeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceDeploymentDetail.as_view(), name ='slicedeployment-detail'),
-#        url(r'plstackapi/slicedeployments/!new/$', SliceDeploymentNew.as_view(), name ='slicedeployment-new'),
+        url(r'plstackapi/slicedeployments/$', SliceDeploymentsList.as_view(), name='slicedeployment-list'),
+        url(r'plstackapi/slicedeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceDeploymentsDetail.as_view(), name ='slicedeployment-detail'),
+#        url(r'plstackapi/slicedeployments/!new/$', SliceDeploymentsNew.as_view(), name ='slicedeployment-new'),
     
         url(r'plstackapi/userdeployments/$', UserDeploymentList.as_view(), name='userdeployment-list'),
         url(r'plstackapi/userdeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', UserDeploymentDetail.as_view(), name ='userdeployment-detail'),
     
         url(r'plstackapi/userdeployments/$', UserDeploymentList.as_view(), name='userdeployment-list'),
         url(r'plstackapi/userdeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', UserDeploymentDetail.as_view(), name ='userdeployment-detail'),
@@ -1009,18 +1009,18 @@ class SitePrivilegeIdSerializer(serializers.ModelSerializer):
 
 
 
 
 
 
-class SliceDeploymentSerializer(serializers.HyperlinkedModelSerializer):
+class SliceDeploymentsSerializer(serializers.HyperlinkedModelSerializer):
     id = serializers.Field()
     
     class Meta:
     id = serializers.Field()
     
     class Meta:
-        model = SliceDeployment
+        model = SliceDeployments
         fields = ('id','created','updated','enacted','backend_status','deleted','slice','deployment','tenant_id','network_id','router_id','subnet_id',)
 
         fields = ('id','created','updated','enacted','backend_status','deleted','slice','deployment','tenant_id','network_id','router_id','subnet_id',)
 
-class SliceDeploymentIdSerializer(serializers.ModelSerializer):
+class SliceDeploymentsIdSerializer(serializers.ModelSerializer):
     id = serializers.Field()
     
     class Meta:
     id = serializers.Field()
     
     class Meta:
-        model = SliceDeployment
+        model = SliceDeployments
         fields = ('id','created','updated','enacted','backend_status','deleted','slice','deployment','tenant_id','network_id','router_id','subnet_id',)
 
 
         fields = ('id','created','updated','enacted','backend_status','deleted','slice','deployment','tenant_id','network_id','router_id','subnet_id',)
 
 
@@ -1304,7 +1304,7 @@ serializerLookUp = {
 
                  SitePrivilege: SitePrivilegeSerializer,
 
 
                  SitePrivilege: SitePrivilegeSerializer,
 
-                 SliceDeployment: SliceDeploymentSerializer,
+                 SliceDeployments: SliceDeploymentsSerializer,
 
                  UserDeployment: UserDeploymentSerializer,
 
 
                  UserDeployment: UserDeploymentSerializer,
 
@@ -4297,10 +4297,10 @@ class SitePrivilegeNew(GenericAPIView):
 
 
 
 
 
 
-class SliceDeploymentList(generics.ListCreateAPIView):
-    queryset = SliceDeployment.objects.select_related().all()
-    serializer_class = SliceDeploymentSerializer
-    id_serializer_class = SliceDeploymentIdSerializer
+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',)
 
     filter_backends = (filters.DjangoFilterBackend,)
     filter_fields = ('id','created','updated','enacted','backend_status','deleted','slice','deployment','tenant_id','network_id','router_id','subnet_id',)
 
@@ -4312,7 +4312,7 @@ class SliceDeploymentList(generics.ListCreateAPIView):
             return self.serializer_class
 
     def get_queryset(self):
             return self.serializer_class
 
     def get_queryset(self):
-        return SliceDeployment.select_by_user(self.request.user)
+        return SliceDeployments.select_by_user(self.request.user)
 
     def create(self, request, *args, **kwargs):
         serializer = self.get_serializer(data=request.DATA, files=request.FILES)
 
     def create(self, request, *args, **kwargs):
         serializer = self.get_serializer(data=request.DATA, files=request.FILES)
@@ -4321,21 +4321,21 @@ class SliceDeploymentList(generics.ListCreateAPIView):
         obj = serializer.object
         obj.caller = request.user
         if obj.can_update(request.user):
         obj = serializer.object
         obj.caller = request.user
         if obj.can_update(request.user):
-            return super(SliceDeploymentList, self).create(request, *args, **kwargs)
+            return super(SliceDeploymentsList, self).create(request, *args, **kwargs)
         else:
             raise Exception("failed obj.can_update")
 
         else:
             raise Exception("failed obj.can_update")
 
-        ret = super(SliceDeploymentList, self).create(request, *args, **kwargs)
+        ret = super(SliceDeploymentsList, self).create(request, *args, **kwargs)
         if (ret.status_code%100 != 200):
             raise Exception(ret.data)
 
         return ret
 
 
         if (ret.status_code%100 != 200):
             raise Exception(ret.data)
 
         return ret
 
 
-class SliceDeploymentDetail(PlanetStackRetrieveUpdateDestroyAPIView):
-    queryset = SliceDeployment.objects.select_related().all()
-    serializer_class = SliceDeploymentSerializer
-    id_serializer_class = SliceDeploymentIdSerializer
+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)
 
     def get_serializer_class(self):
         no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
@@ -4345,7 +4345,7 @@ class SliceDeploymentDetail(PlanetStackRetrieveUpdateDestroyAPIView):
             return self.serializer_class
     
     def get_queryset(self):
             return self.serializer_class
     
     def get_queryset(self):
-        return SliceDeployment.select_by_user(self.request.user)
+        return SliceDeployments.select_by_user(self.request.user)
 
     # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
 
 
     # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
 
@@ -4356,9 +4356,9 @@ class SliceDeploymentDetail(PlanetStackRetrieveUpdateDestroyAPIView):
     filled with defaults. I solved it another way, so this code may soon be
     abandoned.
 
     filled with defaults. I solved it another way, so this code may soon be
     abandoned.
 
-class SliceDeploymentNew(GenericAPIView):
-    serializer_class = SliceDeploymentSerializer
-    id_serializer_class = SliceDeploymentIdSerializer
+class SliceDeploymentsNew(GenericAPIView):
+    serializer_class = SliceDeploymentsSerializer
+    id_serializer_class = SliceDeploymentsIdSerializer
 
     def get(self, request, *args, **kwargs):
         return self.makenew(request, *args, **kwargs)
 
     def get(self, request, *args, **kwargs):
         return self.makenew(request, *args, **kwargs)
@@ -4371,7 +4371,7 @@ class SliceDeploymentNew(GenericAPIView):
             return self.serializer_class
 
     def makenew(self, request, *args, **kwargs):
             return self.serializer_class
 
     def makenew(self, request, *args, **kwargs):
-        obj = SliceDeployment()
+        obj = SliceDeployments()
         serializer = self.get_serializer(obj)
         return Response(serializer.data)
 """
         serializer = self.get_serializer(obj)
         return Response(serializer.data)
 """
index 88c9f1d..f48b25a 100644 (file)
@@ -1,11 +1,11 @@
 from core.models import *
 
 def handle(network):
 from core.models import *
 
 def handle(network):
-       from core.models import SliceDeployment,NetworkDeployments
+       from core.models import SliceDeployments,NetworkDeployments
        from collections import defaultdict
        # network deployments are not visible to users. We must ensure
        # networks are deployed at all deploymets available to their slices.
        from collections import defaultdict
        # network deployments are not visible to users. We must ensure
        # networks are deployed at all deploymets available to their slices.
-       slice_deployments = SliceDeployment.objects.all()
+       slice_deployments = SliceDeployments.objects.all()
        slice_deploy_lookup = defaultdict(list)
        for slice_deployment in slice_deployments:
                slice_deploy_lookup[slice_deployment.slice].append(slice_deployment.deployment)
        slice_deploy_lookup = defaultdict(list)
        for slice_deployment in slice_deployments:
                slice_deploy_lookup[slice_deployment.slice].append(slice_deployment.deployment)
index 56e2f53..ee34b14 100644 (file)
@@ -1,13 +1,13 @@
 
 def handle(slice):
 
 def handle(slice):
-       from core.models import SiteDeployments,SliceDeployment,Deployment,Network,NetworkSlice,NetworkTemplate
+       from core.models import SiteDeployments,SliceDeployments,Deployment,Network,NetworkSlice,NetworkTemplate
        from collections import defaultdict
        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 collections import defaultdict
        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)
        
-       slice_deployments = SliceDeployment.objects.all()
+       slice_deployments = SliceDeployments.objects.all()
        slice_deploy_lookup = defaultdict(list)
        for slice_deployment in slice_deployments:
                slice_deploy_lookup[slice_deployment.slice].append(slice_deployment.deployment)
        slice_deploy_lookup = defaultdict(list)
        for slice_deployment in slice_deployments:
                slice_deploy_lookup[slice_deployment.slice].append(slice_deployment.deployment)
@@ -19,7 +19,7 @@ def handle(slice):
        for expected_deployment in expected_deployments:
                if slice not in slice_deploy_lookup or \
                   expected_deployment not in slice_deploy_lookup[slice]:
        for expected_deployment in expected_deployments:
                if slice not in slice_deploy_lookup or \
                   expected_deployment not in slice_deploy_lookup[slice]:
-                       sd = SliceDeployment(slice=slice, deployment=expected_deployment)
+                       sd = SliceDeployments(slice=slice, deployment=expected_deployment)
                        sd.save()
 
        # make sure slice has at least 1 public and 1 private networkd
                        sd.save()
 
        # make sure slice has at least 1 public and 1 private networkd
index c08a5fa..9e79164 100644 (file)
@@ -6,22 +6,22 @@ from django.db.models import F, Q
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.site import Deployment, SiteDeployments
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.site import Deployment, SiteDeployments
-from core.models.slice import Slice, SliceDeployment
+from core.models.slice import Slice, SliceDeployments
 from core.models.userdeployments import UserDeployment
 from util.logger import Logger, logging
 from observer.ansible import *
 
 logger = Logger(level=logging.INFO)
 
 from core.models.userdeployments import UserDeployment
 from util.logger import Logger, logging
 from observer.ansible import *
 
 logger = Logger(level=logging.INFO)
 
-class SyncSliceDeployment(OpenStackSyncStep):
-    provides=[SliceDeployment]
+class SyncSliceDeployments(OpenStackSyncStep):
+    provides=[SliceDeployments]
     requested_interval=0
 
     def fetch_pending(self, deleted):
         if (deleted):
     requested_interval=0
 
     def fetch_pending(self, deleted):
         if (deleted):
-            return SliceDeployment.deleted_objects.all()
+            return SliceDeployments.deleted_objects.all()
         else:
         else:
-            return SliceDeployment.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
+            return SliceDeployments.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
 
     def get_next_subnet(self, deployment=None):
         # limit ourself to 10.0.x.x for now
 
     def get_next_subnet(self, deployment=None):
         # limit ourself to 10.0.x.x for now
index f51a96b..88a182e 100644 (file)
@@ -22,7 +22,7 @@ class SyncSliceMemberships(OpenStackSyncStep):
     def sync_record(self, slice_memb):
         # sync slice memberships at all slice deployments 
         logger.info("syncing slice privilege: %s %s" % (slice_memb.slice.name, slice_memb.user.email))
     def sync_record(self, slice_memb):
         # sync slice memberships at all slice deployments 
         logger.info("syncing slice privilege: %s %s" % (slice_memb.slice.name, slice_memb.user.email))
-        slice_deployments = SliceDeployment.objects.filter(slice=slice_memb.slice)
+        slice_deployments = SliceDeployments.objects.filter(slice=slice_memb.slice)
         for slice_deployment in slice_deployments:
             if not slice_deployment.tenant_id:
                 continue
         for slice_deployment in slice_deployments:
             if not slice_deployment.tenant_id:
                 continue
index 6d6ca46..a6073b6 100644 (file)
@@ -4,7 +4,7 @@ from netaddr import IPAddress, IPNetwork
 from django.db.models import F, Q
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
 from django.db.models import F, Q
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.slice import Slice, SliceDeployment
+from core.models.slice import Slice, SliceDeployments
 from util.logger import Logger, logging
 from observer.steps.sync_slice_deployments import *
 
 from util.logger import Logger, logging
 from observer.steps.sync_slice_deployments import *
 
@@ -15,14 +15,14 @@ class SyncSlices(OpenStackSyncStep):
     requested_interval=0
 
     def sync_record(self, slice):
     requested_interval=0
 
     def sync_record(self, slice):
-        for slice_deployment in SliceDeployment.objects.filter(slice=slice):
+        for slice_deployment in SliceDeployments.objects.filter(slice=slice):
             # bump the 'updated' timestamp and trigger observer to update
             # slice across all deployments 
             slice_deployment.save()    
 
     def delete_record(self, slice):
             # bump the 'updated' timestamp and trigger observer to update
             # slice across all deployments 
             slice_deployment.save()    
 
     def delete_record(self, slice):
-        slice_deployment_deleter = SyncSliceDeployment().delete_record
-        for slice_deployment in SliceDeployment.objects.filter(slice=slice):
+        slice_deployment_deleter = SyncSliceDeployments().delete_record
+        for slice_deployment in SliceDeployments.objects.filter(slice=slice):
             try:
                 slice_deployment_deleter(slice_deployment)
             except Exception,e:
             try:
                 slice_deployment_deleter(slice_deployment)
             except Exception,e:
index 133c0e0..8237896 100644 (file)
@@ -4,7 +4,7 @@ from django.db.models import F, Q
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.sliver import Sliver
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.sliver import Sliver
-from core.models.slice import Slice, SlicePrivilege, SliceDeployment
+from core.models.slice import Slice, SlicePrivilege, SliceDeployments
 from core.models.network import Network, NetworkSlice, NetworkDeployments
 from util.logger import Logger, logging
 from observer.ansible import *
 from core.models.network import Network, NetworkSlice, NetworkDeployments
 from util.logger import Logger, logging
 from observer.ansible import *
deleted file mode 120000 (symlink)
index c2ca3ee1c9d7a2eb1e966557775dcfd5043947e0..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-config-opencloud.py
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..54000ffc7e73c6a148c6be1952a48d46a6c40cce
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+
+# ---------------------------------
+# This is the configuration file used by the Syndicate observer.
+# It is a well-formed Python file, and will be imported into the
+# observer as a Python module.  This means you can run any config-
+# generation code here you like, but all of the following global 
+# variables must be defined.
+# ---------------------------------
+
+# URL to the Syndicate SMI.  For example, https://syndicate-metadata.appspot.com
+SYNDICATE_SMI_URL="http://localhost:8080"
+
+# If you are going to use OpenID to authenticate the Syndicate sliver daemon,
+# this is the OpenID provider URL.  It is currently used only to generate 
+# identity pages for users, so you can put whatever you want here for now.
+SYNDICATE_OPENID_TRUSTROOT="http://localhost:8081"
+
+# This is the observer's user account on Syndicate.  You must create it out-of-band
+# prior to using the observer, and it must be an admin user since it will
+# create other users (i.e. for slices).
+SYNDICATE_OPENCLOUD_USER="jcnelson@cs.princeton.edu"
+
+# This is the password for the observer to authenticate itself to Syndicate.
+SYNDICATE_OPENCLOUD_PASSWORD="nya"
+
+# If the observer uses public-key authentication with Syndicate, you will 
+# need to identify the absolute path to its private key here.  It must be 
+# a 4096-bit PEM-encoded RSA key, and the Syndicate observer's user account
+# must have been given the public key on activation.
+SYNDICATE_OPENCLOUD_PKEY=None
+
+# This is the location on disk where Syndicate observer code can be found, 
+# if it is not already in the Python path.  This is optional.
+SYNDICATE_PYTHONPATH="/root/syndicate/build/out/python"
+
+# This is the location of the observer's private key.  It must be an absolute
+# path, and refer to a 4096-bit PEM-encoded RSA key.
+SYNDICATE_PRIVATE_KEY="/opt/planetstack/syndicate_observer/syndicatelib_config/pollserver.pem"
+
+# This is the master secret used to generate secrets to seal sensitive information sent to the 
+# Syndicate sliver mount daemons.  It is also used to seal sensitive information
+# stored to the Django database.  
+# TODO: think of a way to not have to store this on disk.  Maybe we feed into the
+# observer when it starts up?
+SYNDICATE_OPENCLOUD_SECRET="e4988309a5005edb8ea185f16f607938c0fb7657e4d7609853bcb7c4884d1c92"
+
+# This is the default port number on which a Syndicate Replica Gateway
+# will be provisioned.  It's a well-known port, and can be the same across
+# slivers, since in OpenCloud, an RG instance only listens to localhost.
+SYNDICATE_RG_DEFAULT_PORT=38800
+
+# This is the absolute path to the RG's storage driver (which will be automatically
+# pushed to slivers by Syndicate).  See https://github.com/jcnelson/syndicate/wiki/Replica-Gateways
+SYNDICATE_RG_CLOSURE=None
+
+# This is the port number the observer listens on for GETs from the Syndicate sliver mount 
+# daemons.  Normally, the oserver pushes (encrypted) commands to the daemons, but if the 
+# daemons are NAT'ed or temporarily partitioned, they will pull commands instead.
+SYNDICATE_HTTP_PORT=65321
+
+# This is the path to the logfile for the observer's HTTP server.
+SYNDICATE_HTTP_LOGFILE="/tmp/syndicate-observer.log"
+
+# This is the number of seconds to wait for pushing a slice credential before timing out.
+SYNDICATE_HTTP_PUSH_TIMEOUT=60
+
+# This is the port number the Syndicate sliver mount daemons listen on.  The observer will 
+# push commands to them on this port.
+SYNDICATE_SLIVER_PORT=65322
+
+# If true, print verbose debug messages.
+DEBUG=True