From 19448256daafc795f40ea46587277a1adac61953 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Wed, 7 Jan 2015 12:48:37 -0500 Subject: [PATCH] bugfixes and cleanup --- planetstack/openstack/client.py | 2 +- .../openstack_observer/steps/__init__.py | 1 + .../steps/sync_controller_networks.py | 6 +-- .../steps/sync_controller_networks.yaml | 6 ++- .../openstack_observer/steps/sync_images.py | 42 ------------------- .../openstack_observer/steps/sync_networks.py | 26 ------------ .../openstack_observer/steps/sync_roles.py | 41 ------------------ .../steps/sync_site_privileges.py | 30 ------------- .../steps/sync_slice_memberships.py | 36 ---------------- .../openstack_observer/steps/sync_slices.py | 30 ------------- .../openstack_observer/steps/sync_slivers.py | 6 +-- .../openstack_observer/steps/sync_users.py | 24 ----------- 12 files changed, 12 insertions(+), 238 deletions(-) delete mode 100644 planetstack/openstack_observer/steps/sync_images.py delete mode 100644 planetstack/openstack_observer/steps/sync_networks.py delete mode 100644 planetstack/openstack_observer/steps/sync_roles.py delete mode 100644 planetstack/openstack_observer/steps/sync_site_privileges.py delete mode 100644 planetstack/openstack_observer/steps/sync_slice_memberships.py delete mode 100644 planetstack/openstack_observer/steps/sync_slices.py delete mode 100644 planetstack/openstack_observer/steps/sync_users.py diff --git a/planetstack/openstack/client.py b/planetstack/openstack/client.py index df340f6..72c5cb4 100644 --- a/planetstack/openstack/client.py +++ b/planetstack/openstack/client.py @@ -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) diff --git a/planetstack/openstack_observer/steps/__init__.py b/planetstack/openstack_observer/steps/__init__.py index 72b0b12..6eec315 100644 --- a/planetstack/openstack_observer/steps/__init__.py +++ b/planetstack/openstack_observer/steps/__init__.py @@ -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 diff --git a/planetstack/openstack_observer/steps/sync_controller_networks.py b/planetstack/openstack_observer/steps/sync_controller_networks.py index fa1f439..c90e4df 100644 --- a/planetstack/openstack_observer/steps/sync_controller_networks.py +++ b/planetstack/openstack_observer/steps/sync_controller_networks.py @@ -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), diff --git a/planetstack/openstack_observer/steps/sync_controller_networks.yaml b/planetstack/openstack_observer/steps/sync_controller_networks.yaml index c85ec55..9b42ea6 100644 --- a/planetstack/openstack_observer/steps/sync_controller_networks.yaml +++ b/planetstack/openstack_observer/steps/sync_controller_networks.yaml @@ -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 %} @@ -13,11 +14,12 @@ {% 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 index 9b915fb..0000000 --- a/planetstack/openstack_observer/steps/sync_images.py +++ /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 index 9f36ed5..0000000 --- a/planetstack/openstack_observer/steps/sync_networks.py +++ /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 index f08a693..0000000 --- a/planetstack/openstack_observer/steps/sync_roles.py +++ /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 index bfc04b3..0000000 --- a/planetstack/openstack_observer/steps/sync_site_privileges.py +++ /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 index e95c533..0000000 --- a/planetstack/openstack_observer/steps/sync_slice_memberships.py +++ /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 index 99ed44c..0000000 --- a/planetstack/openstack_observer/steps/sync_slices.py +++ /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 diff --git a/planetstack/openstack_observer/steps/sync_slivers.py b/planetstack/openstack_observer/steps/sync_slivers.py index 8adb50c..8488b66 100644 --- a/planetstack/openstack_observer/steps/sync_slivers.py +++ b/planetstack/openstack_observer/steps/sync_slivers.py @@ -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 index 4cb1a26..0000000 --- a/planetstack/openstack_observer/steps/sync_users.py +++ /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) -- 2.43.0