bugfixes and cleanup
Tony Mack [Wed, 7 Jan 2015 17:48:37 +0000 (12:48 -0500)]
12 files changed:
planetstack/openstack/client.py
planetstack/openstack_observer/steps/__init__.py
planetstack/openstack_observer/steps/sync_controller_networks.py
planetstack/openstack_observer/steps/sync_controller_networks.yaml
planetstack/openstack_observer/steps/sync_images.py [deleted file]
planetstack/openstack_observer/steps/sync_networks.py [deleted file]
planetstack/openstack_observer/steps/sync_roles.py [deleted file]
planetstack/openstack_observer/steps/sync_site_privileges.py [deleted file]
planetstack/openstack_observer/steps/sync_slice_memberships.py [deleted file]
planetstack/openstack_observer/steps/sync_slices.py [deleted file]
planetstack/openstack_observer/steps/sync_slivers.py
planetstack/openstack_observer/steps/sync_users.py [deleted file]

index df340f6..72c5cb4 100644 (file)
@@ -176,7 +176,7 @@ class OpenStackClient:
         token = self.keystone.client.tokens.authenticate(username=self.keystone.username, password=self.keystone.password, tenant_name=self.keystone.tenant)
         #self.glance = GlanceClient(*args, **kwds)
         
-        self.glanceclient = GlanceClientNew('1', endpoint='http://%s:9292' % hostname, token=token.id, **kwds)
+        self.glanceclient = GlanceClientNew('1', endpoint='https://%s:9292' % hostname, token=token.id, **kwds)
         self.nova = NovaClient(*args, **kwds)
         # self.nova_db = NovaDB(*args, **kwds)
         self.quantum = QuantumClient(*args, **kwds)
index 72b0b12..6eec315 100644 (file)
@@ -3,3 +3,4 @@ from .sync_controller_slices import SyncControllerSlices
 from .sync_controller_users import SyncControllerUsers
 from .sync_controller_site_privileges import SyncControllerSitePrivileges
 from .sync_controller_slice_privileges import SyncControllerSlicePrivileges
+from .sync_controller_networks import SyncControllerNetworks
index fa1f439..c90e4df 100644 (file)
@@ -13,7 +13,7 @@ from observer.ansible import *
 
 logger = Logger(level=logging.INFO)
 
-class SyncControllerNetwork(OpenStackSyncStep):
+class SyncControllerNetworks(OpenStackSyncStep):
     requested_interval = 0
     provides=[Network, ControllerNetwork, Sliver]
 
@@ -42,8 +42,8 @@ class SyncControllerNetwork(OpenStackSyncStep):
 
            network_fields = {'endpoint':controller_network.controller.auth_url,
                        'admin_user':slice.creator.email, # XXX: FIXME
-                       'tenant_name':slice.slicename, # XXX: FIXME
-                       'admin_password':controller_network.controller.admin_password,
+                       'tenant_name':slice.name, # XXX: FIXME
+                       'admin_password':slice.creator.remote_password,
                        'name':network_name,
                        'subnet_name':subnet_name,
                        'ansible_tag':'%s-%s@%s'%(network_name,slice.slicename,controller_network.controller.name),
index c85ec55..9b42ea6 100644 (file)
@@ -6,6 +6,7 @@
         auth_url={{ endpoint }} 
         login_username={{ admin_user }}
         tenant_name={{ tenant_name }}
+        login_tenant_name={{ tenant_name }}
         login_password={{ admin_password }}
         name={{ name }}
         {% if delete %}
         {% else %}
         state=present
         {% endif %}
-        shared: true
+        shared=true
   - quantum_subnet:
         auth_url={{ endpoint }} 
         login_username={{ admin_user }}
         tenant_name={{ tenant_name }}
+        login_tenant_name={{ tenant_name }}
         login_password={{ admin_password }}
         name={{ subnet_name }} 
         network_name={{ name }} 
@@ -25,5 +27,5 @@
         state=absent
         {% else %}
         state=present 
-        cidr = {{ cidr }}
+        cidr={{ cidr }}
         {% endif %}
diff --git a/planetstack/openstack_observer/steps/sync_images.py b/planetstack/openstack_observer/steps/sync_images.py
deleted file mode 100644 (file)
index 9b915fb..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.image import Image
-
-class SyncImages(OpenStackSyncStep):
-    provides=[Image]
-    requested_interval=0
-
-    def fetch_pending(self, deleted):
-        # Images come from the back end
-        # You can't delete them
-        if (deleted):
-            return []
-
-        # get list of images on disk
-        images_path = Config().observer_images_directory 
-        available_images = {}
-        for f in os.listdir(images_path):
-            if os.path.isfile(os.path.join(images_path ,f)):
-                available_images[f] = os.path.join(images_path ,f)
-
-        images = Image.objects.all()
-        image_names = [image.name for image in images]
-
-        for image_name in available_images:
-            #remove file extension
-            clean_name = ".".join(image_name.split('.')[:-1])
-            if clean_name not in image_names:
-                image = Image(name=clean_name,
-                              disk_format='raw',
-                              container_format='bare', 
-                              path = available_images[image_name])
-                image.save()
-       
-        
-        return Image.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) 
-
-    def sync_record(self, image):
-        image.save()
diff --git a/planetstack/openstack_observer/steps/sync_networks.py b/planetstack/openstack_observer/steps/sync_networks.py
deleted file mode 100644 (file)
index 9f36ed5..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.network import *
-from util.logger import Logger, logging
-from observer.steps.sync_controller_networks import *
-
-logger = Logger(level=logging.INFO)
-
-class SyncNetworks(OpenStackSyncStep):
-    provides=[Network]
-    requested_interval = 0
-
-    def sync_record(self, network):
-        network.save()
-
-    def delete_record(self, network):
-        controller_networks_deleter = SyncControllerNetwork().delete_record
-        for controller_network in ControllerNetwork.objects.filter(network=network):
-            try:
-                controller_network_deleter(controller_network)    
-            except Exception,e:
-                logger.log_exc("Failed to delete controller network %s" % controller_network)
-                raise e
diff --git a/planetstack/openstack_observer/steps/sync_roles.py b/planetstack/openstack_observer/steps/sync_roles.py
deleted file mode 100644 (file)
index f08a693..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.role import Role
-from core.models.site import SiteRole, Controller, ControllerRole
-from core.models.slice import SliceRole
-
-class SyncRoles(OpenStackSyncStep):
-    provides=[Role]
-    requested_interval=0
-
-    def fetch_pending(self, deleted):
-        # Deleting roles is not supported yet
-        if (deleted):
-            return []
-
-        site_roles = SiteRole.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
-        slice_roles = SliceRole.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
-        controller_roles = ControllerRole.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
-
-        roles = []
-        for site_role in site_roles:
-            roles.append(site_role)
-        for slice_role in slice_roles:
-            roles.append(slice_role)
-        for controller_role in controller_roles:
-            roles.append(controller_role)
-
-        return roles
-
-
-    def sync_record(self, role):
-        if not role.enacted:
-            controllers = Controller.objects.all()
-                   for controller in controllers:
-                driver = self.driver.admin_driver(controller=controller)
-                driver.create_role(role.role)
-            role.save()
-    
diff --git a/planetstack/openstack_observer/steps/sync_site_privileges.py b/planetstack/openstack_observer/steps/sync_site_privileges.py
deleted file mode 100644 (file)
index bfc04b3..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models import User, ControllerUser, SitePrivilege, SiteDeployment   
-
-class SyncSitePrivilege(OpenStackSyncStep):
-    requested_interval=0
-    provides=[SitePrivilege]
-
-    def fetch_pending(self, deleted):
-        # Deleting site privileges is not supported yet
-        if (deleted):
-            return []
-
-        return SitePrivilege.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
-
-    def sync_record(self, site_priv):
-        # sync site privileges at all site controllers
-        ctrl_site_deployments = SiteDeployment.objects.filter(site_deployment__site=site_priv.site)
-        for ctrl_site_deployment in ctrl_site_deployments:
-            controller_users = ControllerUser.objects.filter(controller=ctrl_site_deployment.controller,
-                                                              user=site_priv.user)
-            if controller_users:
-                kuser_id  = controller_users[0].kuser_id
-                driver = self.driver.admin_driver(controller=ctrl_site_deployment.controller)
-                driver.add_user_role(kuser_id,
-                                     ctrl_site_deployment.controller.tenant_id,
-                                     site_priv.role.role)
diff --git a/planetstack/openstack_observer/steps/sync_slice_memberships.py b/planetstack/openstack_observer/steps/sync_slice_memberships.py
deleted file mode 100644 (file)
index e95c533..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.slice import *
-from core.models.controllerusers import ControllerUser
-from util.logger import Logger, logging
-
-logger = Logger(level=logging.INFO)
-
-class SyncSliceMemberships(OpenStackSyncStep):
-    requested_interval=0
-    provides=[SlicePrivilege]
-
-    def fetch_pending(self, deleted):
-        # Deleting site memberships is not supported yet
-        if (deleted):
-            return []
-        return SlicePrivilege.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
-
-    def sync_record(self, slice_memb):
-        # sync slice memberships at all slice controllers 
-        logger.info("syncing slice privilege: %s %s" % (slice_memb.slice.name, slice_memb.user.email))
-        slice_controllers = ControllerSlice.objects.filter(slice=slice_memb.slice)
-        for slice_controller in slice_controllers:
-            if not slice_controller.tenant_id:
-                continue
-            controller_users = ControllerUser.objects.filter(controller=slice_controller.controller,
-                                                              user=slice_memb.user)
-            if controller_users:
-                kuser_id  = controller_users[0].kuser_id
-                driver = self.driver.admin_driver(controller=slice_controller.controller.name)
-                driver.add_user_role(kuser_id,
-                                     slice_controller.tenant_id,
-                                     slice_memb.role.role)
diff --git a/planetstack/openstack_observer/steps/sync_slices.py b/planetstack/openstack_observer/steps/sync_slices.py
deleted file mode 100644 (file)
index 99ed44c..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-import os
-import base64
-from netaddr import IPAddress, IPNetwork
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.slice import Slice, ControllerSlice
-from util.logger import Logger, logging
-from observer.steps.sync_controller_slices import *
-
-logger = Logger(level=logging.INFO)
-
-class SyncSlices(OpenStackSyncStep):
-    provides=[Slice]
-    requested_interval=0
-
-    def sync_record(self, slice):
-        for controller_slice in ControllerSlice.objects.filter(slice=slice):
-            # bump the 'updated' timestamp and trigger observer to update
-            # slice across all controllers 
-            controller_slice.save()    
-
-    def delete_record(self, slice):
-        controller_slice_deleter = SyncControllerSlice().delete_record
-        for controller_slice in ControllerSlice.objects.filter(slice=slice):
-            try:
-                controller_slice_deleter(controller_slice)
-            except Exception,e:
-                logger.log_exc("Failed to delete controller_slice %s" % controller_slice) 
-                raise e
index 8adb50c..8488b66 100644 (file)
@@ -58,7 +58,7 @@ class SyncSlivers(OpenStackSyncStep):
                              if network.template.shared_network_name]
 
         #driver = self.driver.client_driver(caller=sliver.creator, tenant=sliver.slice.name, controller=sliver.controllerNetwork)
-        driver = self.driver.admin_driver(tenant='admin', controller=sliver.controllerNetwork)
+        driver = self.driver.admin_driver(tenant='admin', controller=sliver.node.site_deployment.controller)
         nets = driver.shell.quantum.list_networks()['networks']
         for net in nets:
             if net['name'] in network_templates:
@@ -70,7 +70,7 @@ class SyncSlivers(OpenStackSyncStep):
                     nics.append(net['id'])
 
         # look up image id
-        controller_driver = self.driver.admin_driver(controller=sliver.controllerNetwork)
+        controller_driver = self.driver.admin_driver(controller=sliver.node.site_deployment.controller)
         image_id = None
         images = controller_driver.shell.glanceclient.images.list()
         for image in images:
@@ -102,7 +102,7 @@ class SyncSlivers(OpenStackSyncStep):
         if sliver.userData:
             userData = sliver.userData
 
-        controller = sliver.controllerNetwork
+        controller = sliver.node.site_deployment.controller
         tenant_fields = {'endpoint':controller.auth_url,
                      'admin_user': sliver.creator.username,
                      'admin_password': sliver.creator.password,
diff --git a/planetstack/openstack_observer/steps/sync_users.py b/planetstack/openstack_observer/steps/sync_users.py
deleted file mode 100644 (file)
index 4cb1a26..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-import os
-import base64
-import hashlib
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.user import User
-from core.models.controllerusers import  ControllerUser
-from observer.steps.sync_controller_users import SyncControllerUser
-
-class SyncUsers(OpenStackSyncStep):
-    provides=[User]
-    requested_interval=0
-
-    def sync_record(self, user):
-        for controller_user in ControllerUser.objects.filter(user=user):
-            # bump the 'updated' field so user account are updated across 
-            # controllers.
-            controller_user.save()
-
-    def delete_record(self, user):
-        controller_user_deleter = SyncControllerUser().delete_record
-        for controller_user in ControllerUser.objects.filter(user=user):
-            controller_user_deleter(controller_user)