def init_app(): config.set_config_defaults() config_files = _get_config_files() CONF([], project='glance', default_config_files=config_files) logging.setup(CONF, "glance") # NOTE(danms): We are running inside uwsgi or mod_wsgi, so no eventlet; # use native threading instead. glance.async_.set_threadpool_model('native') atexit.register(drain_threadpools) # NOTE(danms): Change the default threadpool size since we # are dealing with native threads and not greenthreads. # Right now, the only pool of default size is tasks_pool, # so if others are created this will need to change to be # more specific. common.DEFAULT_POOL_SIZE = CONF.wsgi.task_pool_threads if CONF.enabled_backends: if store_utils.check_reserved_stores(CONF.enabled_backends): msg = _("'os_glance_' prefix should not be used in " "enabled_backends config option. It is reserved " "for internal use only.") raise RuntimeError(msg) glance_store.register_store_opts(CONF, reserved_stores=RESERVED_STORES) glance_store.create_multi_stores(CONF, reserved_stores=RESERVED_STORES) glance_store.verify_store() else: glance_store.register_opts(CONF) glance_store.create_stores(CONF) glance_store.verify_default_store() _setup_os_profiler() return config.load_paste_app('glance-api')
def setup_multiple_stores(self, mock_client): """Configures multiple backend stores. This configures the API with two cinder stores (store1 and store2) as well as a os_glance_staging_store for imports. """ self.config(show_multiple_locations=True) self.config(show_image_direct_url=True) self.config(enabled_backends={'store1': 'cinder', 'store2': 'cinder'}) glance_store.register_store_opts(CONF, reserved_stores=wsgi.RESERVED_STORES) self.config(default_backend='store1', group='glance_store') self.config(cinder_volume_type='fast', group='store1') self.config(cinder_store_user_name='fake_user', group='store1') self.config(cinder_store_password='******', group='store1') self.config(cinder_store_project_name='fake_project', group='store1') self.config(cinder_store_auth_address='http://auth_addr', group='store1') self.config(cinder_volume_type='reliable', group='store2') self.config(cinder_store_user_name='fake_user', group='store2') self.config(cinder_store_password='******', group='store2') self.config(cinder_store_project_name='fake_project', group='store2') self.config(cinder_store_auth_address='http://auth_addr', group='store2') self.config(filesystem_store_datadir=self._store_dir('staging'), group='os_glance_staging_store') glance_store.create_multi_stores(CONF, reserved_stores=wsgi.RESERVED_STORES) glance_store.verify_store()
def init_app(): config_files = _get_config_files() CONF([], project='glance', default_config_files=config_files) logging.setup(CONF, "glance") if CONF.enabled_backends: glance_store.register_store_opts(CONF) glance_store.create_multi_stores(CONF) glance_store.verify_store() else: glance_store.register_opts(CONF) glance_store.create_stores(CONF) glance_store.verify_default_store() _setup_os_profiler() return config.load_paste_app('glance-api')
def init_app(): config_files = _get_config_files() CONF([], project='glance', default_config_files=config_files) logging.setup(CONF, "glance") if CONF.enabled_backends: if store_utils.check_reserved_stores(CONF.enabled_backends): msg = _("'os_glance_' prefix should not be used in " "enabled_backends config option. It is reserved " "for internal use only.") raise RuntimeError(msg) glance_store.register_store_opts(CONF, reserved_stores=RESERVED_STORES) glance_store.create_multi_stores(CONF, reserved_stores=RESERVED_STORES) glance_store.verify_store() else: glance_store.register_opts(CONF) glance_store.create_stores(CONF) glance_store.verify_default_store() _setup_os_profiler() return config.load_paste_app('glance-api')
def initialize_multi_store(): """Initialize glance multi store backends.""" glance_store.register_store_opts(CONF, reserved_stores=RESERVED_STORES) glance_store.create_multi_stores(CONF, reserved_stores=RESERVED_STORES) glance_store.verify_store()
def main(): # Used on Window, ensuring that a single scrubber can run at a time. mutex = None mutex_acquired = False try: if os.name == 'nt': # We can't rely on process names on Windows as there may be # wrappers with the same name. mutex = os_win_utilsfactory.get_mutex( name='Global\\glance-scrubber') mutex_acquired = mutex.acquire(timeout_ms=0) CONF.register_cli_opts(scrubber.scrubber_cmd_cli_opts) CONF.register_opts(scrubber.scrubber_cmd_opts) config.parse_args() logging.setup(CONF, 'glance') CONF.import_opt('enabled_backends', 'glance.common.wsgi') if CONF.enabled_backends: glance_store.register_store_opts(CONF) glance_store.create_multi_stores(CONF) glance_store.verify_store() else: glance_store.register_opts(CONF) glance_store.create_stores(CONF) glance_store.verify_default_store() if CONF.restore and CONF.daemon: sys.exit("ERROR: The restore and daemon options should not be set " "together. Please use either of them in one request.") app = scrubber.Scrubber(glance_store) if CONF.restore: if os.name == 'nt': scrubber_already_running = not mutex_acquired else: scrubber_already_running = scrubber_already_running_posix() if scrubber_already_running: already_running_msg = ( "ERROR: glance-scrubber is already running. " "Please ensure that the daemon is stopped.") sys.exit(already_running_msg) app.revert_image_status(CONF.restore) elif CONF.daemon: server = scrubber.Daemon(CONF.wakeup_time) server.start(app) server.wait() else: app.run() except (exception.ImageNotFound, exception.Conflict) as e: sys.exit("ERROR: %s" % e) except RuntimeError as e: sys.exit("ERROR: %s" % e) finally: if mutex and mutex_acquired: mutex.release()
def initialize_multi_store(): """Initialize glance multi store backends.""" glance_store.register_store_opts(CONF) glance_store.create_multi_stores(CONF) glance_store.verify_store()