def create_new_cascaded_task(self, last_run_time=None): LOG.debug(_('new_cascaded periodic task has been created.')) glance_client = create_self_glance_client(self.ks_client.auth_token) filters = {'status': 'active'} image_list = glance_client.images.list(filters=filters) input = {} run_images = {} cascading_ep = s_utils.get_cascading_endpoint_url() input['cascading_ep'] = cascading_ep input['image_id'] = 'ffffffff-ffff-ffff-ffff-ffffffffffff' all_ep_urls = s_utils.get_endpoints() for image in image_list: glance_urls = [ loc['url'] for loc in image.locations if s_utils.is_glance_location(loc['url']) ] lack_ep_urls = s_utils.calculate_lack_endpoints( all_ep_urls, glance_urls) if lack_ep_urls: image_core_props = s_utils.get_core_properties(image) run_images[image.id] = { 'body': image_core_props, 'locations': lack_ep_urls } if not run_images: LOG.debug(_('No images need to sync to new cascaded glances.')) input['images'] = run_images return TaskObject.get_instance('periodic_add', input, last_run_time=last_run_time)
def create_new_cascaded_task(self, last_run_time=None): LOG.debug(_('new_cascaded periodic task has been created.')) glance_client = create_self_glance_client(self.ks_client.auth_token) filters = {'status': 'active'} image_list = glance_client.images.list(filters=filters) input = {} run_images = {} cascading_ep = s_utils.get_cascading_endpoint_url() input['cascading_ep'] = cascading_ep input['image_id'] = 'ffffffff-ffff-ffff-ffff-ffffffffffff' all_ep_urls = s_utils.get_endpoints() for image in image_list: glance_urls = [loc['url'] for loc in image.locations if s_utils.is_glance_location(loc['url'])] lack_ep_urls = s_utils.calculate_lack_endpoints(all_ep_urls, glance_urls) if lack_ep_urls: image_core_props = s_utils.get_core_properties(image) run_images[image.id] = {'body': image_core_props, 'locations': lack_ep_urls} if not run_images: LOG.debug(_('No images need to sync to new cascaded glances.')) input['images'] = run_images return TaskObject.get_instance('periodic_add', input, last_run_time=last_run_time)
def create_green_threads(self, sync_manager, auth_token): green_threads = [] cascaded_eps = s_utils.get_endpoints(auth_token) for cascaded_ep in cascaded_eps: green_threads.append( eventlet.spawn(sync_manager.sync_image, auth_token, self.cascading_endpoint, cascaded_ep, self.image_id, self.image_id, **self.input)) return green_threads
def endpoints(self, req, body): regions = req.params.get('regions', []) if not regions: regions = body.pop('regions', []) if not isinstance(regions, list): regions = [regions] LOG.debug(_('get cacaded endpoints of user/tenant: %s' % (req.context.user or req.context.tenant or 'NONE'))) return dict(eps=utils.get_endpoints(req.context.auth_tok, req.context.tenant, region_names=regions) or [])
def create_green_threads(self, sync_manager, auth_token): green_threads = [] cascaded_eps = s_utils.get_endpoints(auth_token) for cascaded_ep in cascaded_eps: green_threads.append(eventlet.spawn(sync_manager.sync_image, auth_token, self.cascading_endpoint, cascaded_ep, self.image_id, self.image_id, **self.input)) return green_threads
def create_green_threads(self, sync_manager, auth_token): green_threads = [] _region_names = CONF.snapshot_region_names cascaded_mapping = s_utils.get_endpoints(auth_token, region_names=_region_names) try: if self.snapshot_endpoint in cascaded_mapping: cascaded_mapping.remove(self.snapshot_endpoint) except TypeError: pass for cascaded_ep in cascaded_mapping: green_threads.append( eventlet.spawn(sync_manager.do_snapshot, auth_token, self.snapshot_endpoint, cascaded_ep, self.snapshot_id, self.image_id, **self.input)) return green_threads
def create_green_threads(self, sync_manager, auth_token): green_threads = [] _region_names = CONF.snapshot_region_names cascaded_mapping = s_utils.get_endpoints(auth_token, region_names=_region_names) try: if self.snapshot_endpoint in cascaded_mapping: cascaded_mapping.remove(self.snapshot_endpoint) except TypeError: pass for cascaded_ep in cascaded_mapping: green_threads.append(eventlet.spawn(sync_manager.do_snapshot, auth_token, self.snapshot_endpoint, cascaded_ep, self.snapshot_id, self.image_id, **self.input)) return green_threads