From 9e6e9152ad25e72676174a547a07705b557176bf Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Sun, 30 Nov 2014 15:53:08 -0500 Subject: [PATCH] Controller replaces Deployment --- .../steps/sync_controller_images.py | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/planetstack/openstack_observer/steps/sync_controller_images.py b/planetstack/openstack_observer/steps/sync_controller_images.py index 20c22a2..67cd7b5 100644 --- a/planetstack/openstack_observer/steps/sync_controller_images.py +++ b/planetstack/openstack_observer/steps/sync_controller_images.py @@ -4,74 +4,74 @@ from collections import defaultdict from django.db.models import F, Q from planetstack.config import Config from observer.openstacksyncstep import OpenStackSyncStep -from core.models import Deployment -from core.models import Image, ImageDeployments +from core.models import Controller +from core.models import Image, ControllerImages from util.logger import Logger, logging logger = Logger(level=logging.INFO) -class SyncImageDeployments(OpenStackSyncStep): - provides=[ImageDeployments] +class SyncControllerImages(OpenStackSyncStep): + provides=[ControllerImages] requested_interval=0 def fetch_pending(self, deleted): if (deleted): return [] - # smbaker: commented out automatic creation of ImageDeployments as + # smbaker: commented out automatic creation of ControllerImages as # as they will now be configured in GUI. Not sure if this is # sufficient. -# # ensure images are available across all deployments -# image_deployments = ImageDeployments.objects.all() +# # ensure images are available across all controllers +# controller_images = ControllerImages.objects.all() # image_deploy_lookup = defaultdict(list) -# for image_deployment in image_deployments: -# image_deploy_lookup[image_deployment.image].append(image_deployment.deployment) +# for controller_image in controller_images: +# image_deploy_lookup[controller_image.image].append(controller_image.controller) # -# all_deployments = Deployment.objects.all() +# all_controllers = Controller.objects.all() # for image in Image.objects.all(): -# expected_deployments = all_deployments -# for expected_deployment in expected_deployments: +# expected_controllers = all_controllers +# for expected_controller in expected_controllers: # if image not in image_deploy_lookup or \ -# expected_deployment not in image_deploy_lookup[image]: -# id = ImageDeployments(image=image, deployment=expected_deployment) +# expected_controller not in image_deploy_lookup[image]: +# id = ControllerImages(image=image, controller=expected_controller) # id.save() # now we return all images that need to be enacted - return ImageDeployments.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) + return ControllerImages.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) - def sync_record(self, image_deployment): - logger.info("Working on image %s on deployment %s" % (image_deployment.image.name, image_deployment.deployment.name)) - driver = self.driver.admin_driver(deployment=image_deployment.deployment.name) + def sync_record(self, controller_image): + logger.info("Working on image %s on controller %s" % (controller_image.image.name, controller_image.controller)) + driver = self.driver.admin_driver(controller=controller_image.controller.name) images = driver.shell.glance.get_images() glance_image = None for image in images: - if image['name'] == image_deployment.image.name: + if image['name'] == controller_image.image.name: glance_image = image break if glance_image: - logger.info("Found image %s on deployment %s" % (image_deployment.image.name, image_deployment.deployment.name)) - image_deployment.glance_image_id = glance_image['id'] - elif image_deployment.image.path: + logger.info("Found image %s on controller %s" % (controller_image.image.name, controller_image.controller.name)) + controller_image.glance_image_id = glance_image['id'] + elif controller_image.image.path: image = { - 'name': image_deployment.image.name, + 'name': controller_image.image.name, 'is_public': True, 'disk_format': 'raw', 'container_format': 'bare', - 'file': image_deployment.image.path, + 'file': controller_image.image.path, } - logger.info("Creating image %s on deployment %s" % (image_deployment.image.name, image_deployment.deployment.name)) + logger.info("Creating image %s on controller %s" % (controller_image.image.name, controller_image.controller.name)) - glance_image = driver.shell.glanceclient.images.create(name=image_deployment.image.name, + glance_image = driver.shell.glanceclient.images.create(name=controller_image.image.name, is_public=True, disk_format='raw', container_format='bare') - glance_image.update(data=open(image_deployment.image.path, 'rb')) + glance_image.update(data=open(controller_image.image.path, 'rb')) # While the images returned by driver.shell.glance.get_images() # are dicts, the images returned by driver.shell.glanceclient.images.create # are not dicts. We have to use getattr() instead of [] operator. if not glance_image or not getattr(glance_image,"id",None): - raise Exception, "Add image failed at deployment %s" % image_deployment.deployment.name - image_deployment.glance_image_id = getattr(glance_image, "id") - image_deployment.save() + raise Exception, "Add image failed at controller %s" % controller_image.controller.name + controller_image.glance_image_id = getattr(glance_image, "id") + controller_image.save() -- 2.43.0