コード例 #1
0
 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)
コード例 #2
0
ファイル: base.py プロジェクト: joey5678/tricircle
 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)
コード例 #3
0
ファイル: __init__.py プロジェクト: aliliang/tricircle
    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
コード例 #4
0
ファイル: images.py プロジェクト: aliliang/tricircle
 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 [])
コード例 #5
0
ファイル: __init__.py プロジェクト: aliliang/tricircle
    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
コード例 #6
0
ファイル: __init__.py プロジェクト: aliliang/tricircle
    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
コード例 #7
0
ファイル: __init__.py プロジェクト: aliliang/tricircle
    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