removing ControllerSiteDeployment object. Move tenant_id field to SiteDeployments...
authorTony Mack <tmack@tux.cs.princeton.edu>
Sat, 3 Jan 2015 22:26:06 +0000 (17:26 -0500)
committerTony Mack <tmack@tux.cs.princeton.edu>
Sat, 3 Jan 2015 22:26:06 +0000 (17:26 -0500)
planetstack/core/migrations/0001_initial.py
planetstack/core/models/site.py
planetstack/model_policies/model_policy_Site.py [deleted file]
planetstack/openstack_observer/steps/sync_controller_site_deployments.py

index de0de8a..8e1ec76 100644 (file)
@@ -210,23 +210,6 @@ class Migration(migrations.Migration):
             },
             bases=(models.Model,),
         ),
-        migrations.CreateModel(
-            name='ControllerSiteDeployments',
-            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)),
-                ('updated', models.DateTimeField(default=django.utils.timezone.now, auto_now=True)),
-                ('enacted', models.DateTimeField(default=None, null=True, blank=True)),
-                ('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
-                ('deleted', models.BooleanField(default=False)),
-                ('tenant_id', models.CharField(help_text=b'Keystone tenant id', max_length=200, null=True, blank=True)),
-                ('controller', models.ForeignKey(related_name=b'controllersitedeployments', to='core.Controller')),
-            ],
-            options={
-                'abstract': False,
-            },
-            bases=(models.Model,),
-        ),
         migrations.CreateModel(
             name='ControllerSlices',
             fields=[
@@ -829,6 +812,7 @@ class Migration(migrations.Migration):
                 ('enacted', models.DateTimeField(default=None, null=True, blank=True)),
                 ('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
                 ('deleted', models.BooleanField(default=False)),
+                ('tenant_id', models.CharField(help_text=b'Keystone tenant id', max_length=200, null=True, blank=True)),
                 ('availability_zone', models.CharField(help_text=b'OpenStack availability zone', max_length=200, null=True, blank=True)),
                 ('controller', models.ForeignKey(related_name=b'sitedeployments', blank=True, to='core.Controller', null=True)),
                 ('deployment', models.ForeignKey(related_name=b'sitedeployments', to='core.Deployment')),
index c7516d8..c61f5eb 100644 (file)
@@ -316,15 +316,6 @@ class SiteDeployments(PlCoreBase):
     deployment = models.ForeignKey(Deployment,related_name='sitedeployments')
     controller = models.ForeignKey(Controller, null=True, blank=True, related_name='sitedeployments')
     availability_zone = models.CharField(max_length=200, null=True, blank=True, help_text="OpenStack availability zone")
-
-    def __unicode__(self):  return u'%s %s' % (self.deployment, self.site)
-
-class ControllerSiteDeployments(PlCoreBase):
-    objects = ControllerLinkManager()
-    deleted_objects = ControllerLinkDeletionManager()
-    
-    controller = models.ForeignKey(Controller, related_name='controllersitedeployments')
-    site_deployment = models.ForeignKey(SiteDeployments, related_name='controllersitedeployments') 
     tenant_id = models.CharField(null=True, blank=True, max_length=200, help_text="Keystone tenant id")
 
-    def __unicode__(self):  return u'%s %s' % (self.controller, self.site_deployment)
+    def __unicode__(self):  return u'%s %s' % (self.deployment, self.site)
diff --git a/planetstack/model_policies/model_policy_Site.py b/planetstack/model_policies/model_policy_Site.py
deleted file mode 100644 (file)
index 5b713e1..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-from core.models import *
-
-def handle(site):
-    """ 
-    ensure ControllerSiteDeployment object exists for each of the site's SiteDeployment objects
-    """
-    from core.models import SiteDeployments, Controller, ControllerSiteDeployments 
-    from collections import defaultdict
-    
-    # get current controller site deployments  
-    ctrl_site_deployments = ControllerSiteDeployments.objects.filter(site_deployment__site = site)
-    ctrl_site_deployments_dict = {} 
-    for ctrl_site_depl in controller_site_deployments:
-        ctrl_site_deployments_dict[ctrl_site_depl.site_deployment] = ctrl_cite_depl
-
-    # get current site deployments
-    site_deployments = SiteDeployments.objects.filter(site=site)
-    # for each site deployment, if there is no controller site deployment create one 
-    for site_deployment in site_deployments:
-        if site_deployment not in ctrl_site_deployments_dict:
-            ctrl_site_deployment = ControllerSiteDeployment(
-                site_deployment=site_deployment,
-                controller=site_deployment.controller,
-            )
-            ctrl_site_deployment.save()         
index d0e4a7f..a923608 100644 (file)
@@ -8,51 +8,51 @@ from observer.ansible import *
 
 class SyncControllerSiteDeployments(OpenStackSyncStep):
     requested_interval=0
-    provides=[ControllerSiteDeployments, SiteDeployments]
+    provides=[SiteDeployments]
 
-    def sync_record(self, controller_site_deployment):
+    def sync_record(self, site_deployment):
 
        template = os_template_env.get_template('sync_controller_site_deployments.yaml')
-       tenant_fields = {'endpoint':controller_site_deployment.controller.auth_url,
-                        'admin_user': controller_site_deployment.controller.admin_user,
-                        'admin_password': controller_site_deployment.controller.admin_password,
-                        'admin_tenant': controller_site_deployment.controller.admin_tenant,
-                        'ansible_tag': '%s@%s'%(controller_site_deployment.site_deployment.site.login_base,controller_site_deployment.site_deployment.deployment.name), # name of ansible playbook
-                        'tenant': controller_site_deployment.site_deployment.site.login_base,
-                        'tenant_description': controller_site_deployment.site_deployment.site.name}
+       tenant_fields = {'endpoint':site_deployment.controller.auth_url,
+                        'admin_user': site_deployment.controller.admin_user,
+                        'admin_password': site_deployment.controller.admin_password,
+                        'admin_tenant': site_deployment.controller.admin_tenant,
+                        'ansible_tag': '%s@%s'%(site_deployment.site.login_base,site_deployment.site_deployment.deployment.name), # name of ansible playbook
+                        'tenant': site_deployment.site.login_base,
+                        'tenant_description': site_deployment.site.name}
 
        rendered = template.render(tenant_fields)
-       res = run_template('sync_controller_site_deployments.yaml', tenant_fields, path='site_deployments')
+       res = run_template('sync_controller_site_deployments.yaml', tenant_fields, path='controller_site_deployments')
 
        if (len(res)==1):
-               controller_site_deployment.tenant_id = res[0]['id']
-               controller_site_deployment.save()
+               site_deployment.tenant_id = res[0]['id']
+               site_deployment.save()
        elif (len(res)):
                raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])
        else:
                raise Exception('Could not create or update user %s'%tenant_fields['tenant'])
             
-    def delete_record(self, controller_site_deployment):
-       if controller_site_deployment.tenant_id:
-            driver = self.driver.admin_driver(controller=controller_site_deployment.controller)
-            driver.delete_tenant(controller_site_deployment.tenant_id)
+    def delete_record(self, site_deployment):
+       if site_deployment.tenant_id:
+            driver = self.driver.admin_driver(controller=site_deployment.controller)
+            driver.delete_tenant(site_deployment.tenant_id)
 
        """
         Ansible does not support tenant deletion yet
 
        import pdb
        pdb.set_trace()
-        template = os_template_env.get_template('delete_controller_site_deployments.yaml')
-       tenant_fields = {'endpoint':controller_site_deployment.controller.auth_url,
-                        'admin_user': controller_site_deployment.controller.admin_user,
-                        'admin_password': controller_site_deployment.controller.admin_password,
+        template = os_template_env.get_template('delete_site_deployments.yaml')
+       tenant_fields = {'endpoint':site_deployment.controller.auth_url,
+                        'admin_user': site_deployment.controller.admin_user,
+                        'admin_password': site_deployment.controller.admin_password,
                         'admin_tenant': 'admin',
-                        'ansible_tag': 'site_deployments/%s@%s'%(controller_site_deployment.site_deployment.site.login_base,controller_site_deployment.site_deployment.deployment.name), # name of ansible playbook
-                        'tenant': controller_site_deployment.site_deployment.site.login_base,
+                        'ansible_tag': 'site_deployments/%s@%s'%(site_deployment.site_deployment.site.login_base,site_deployment.site_deployment.deployment.name), # name of ansible playbook
+                        'tenant': site_deployment.site_deployment.site.login_base,
                         'delete': True}
 
        rendered = template.render(tenant_fields)
-       res = run_template('sync_controller_site_deployments.yaml', tenant_fields)
+       res = run_template('sync_site_deployments.yaml', tenant_fields)
 
        if (len(res)!=1):
                raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])