コード例 #1
0
 def setUp(self):
     """Establish a clean test environment"""
     super(TestMalformedRequest, self).setUp()
     self.config(flavor='',
                 group='paste_deploy',
                 config_file='etc/glance-api-paste.ini')
     self.api = config.load_paste_app('glance-api')
コード例 #2
0
ファイル: test_config.py プロジェクト: AsylumCorp/glance
    def _do_test_load_paste_app(self,
                                expected_app_type,
                                paste_group={},
                                paste_copy=True,
                                paste_append=None):

        conf = test_utils.TestConfigOpts(groups=paste_group,
                                         clean=False)

        def _appendto(orig, copy, str):
            shutil.copy(orig, copy)
            with open(copy, 'ab') as f:
                f.write(str or '')
                f.flush()

        paste_to = os.path.join(conf.temp_file.replace('.conf',
                                                       '-paste.ini'))
        if paste_copy:
            paste_from = os.path.join(os.getcwd(),
                                      'etc/glance-registry-paste.ini')
            _appendto(paste_from, paste_to, paste_append)

        app = config.load_paste_app(conf, 'glance-registry')

        self.assertEquals(expected_app_type, type(app))

        if paste_copy:
            os.remove(conf.temp_file)
            os.remove(paste_to)
            os.rmdir(os.path.dirname(conf.temp_file))
コード例 #3
0
ファイル: api.py プロジェクト: BetaRabbit/glance
def main():
    try:
        config.parse_args()
        wsgi.set_eventlet_hub()
        log.setup('glance')

        glance_store.register_opts(config.CONF)
        glance_store.create_stores(config.CONF)
        glance_store.verify_default_store()

        if cfg.CONF.profiler.enabled:
            _notifier = osprofiler.notifier.create("Messaging",
                                                   notifier.messaging, {},
                                                   notifier.get_transport(),
                                                   "glance", "api",
                                                   cfg.CONF.bind_host)
            osprofiler.notifier.set(_notifier)
        else:
            osprofiler.web.disable()

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-api'), default_port=9292)
        server.wait()
    except exception.WorkerCreationFailure as e:
        fail(2, e)
    except RuntimeError as e:
        fail(1, e)
コード例 #4
0
ファイル: test_config.py プロジェクト: amoid/glance
    def _do_test_load_paste_app(
        self, expected_app_type, make_paste_file=True, paste_flavor=None, paste_config_file=None, paste_append=None
    ):
        def _writeto(path, str):
            with open(path, "wb") as f:
                f.write(str or "")
                f.flush()

        def _appendto(orig, copy, str):
            shutil.copy(orig, copy)
            with open(copy, "ab") as f:
                f.write(str or "")
                f.flush()

        self.config(flavor=paste_flavor, config_file=paste_config_file, group="paste_deploy")

        temp_dir = self.useFixture(fixtures.TempDir()).path
        temp_file = os.path.join(temp_dir, "testcfg.conf")

        _writeto(temp_file, "[DEFAULT]\n")

        config.parse_args(["--config-file", temp_file])

        paste_to = temp_file.replace(".conf", "-paste.ini")
        if not paste_config_file and make_paste_file:
            paste_from = os.path.join(os.getcwd(), "etc/glance-registry-paste.ini")
            _appendto(paste_from, paste_to, paste_append)

        app = config.load_paste_app("glance-registry")

        self.assertIsInstance(app, expected_app_type)
コード例 #5
0
 def _load_paste_app(self, name, flavor, conf):
     conf_file_path = os.path.join(self.test_dir, '%s-paste.ini' % name)
     with open(conf_file_path, 'wb') as conf_file:
         conf_file.write(conf)
         conf_file.flush()
     return config.load_paste_app(name, flavor=flavor,
                                  conf_file=conf_file_path)
コード例 #6
0
ファイル: base.py プロジェクト: LiangShang/glance
 def _load_paste_app(self, name, flavor, conf):
     conf_file_path = os.path.join(self.test_dir, '%s-paste.ini' % name)
     with open(conf_file_path, 'wb') as conf_file:
         conf_file.write(conf)
         conf_file.flush()
     return config.load_paste_app(name, flavor=flavor,
                                  conf_file=conf_file_path)
コード例 #7
0
def main():
    try:
        config.parse_args()
        wsgi.set_eventlet_hub()
        log.setup('glance')

        glance_store.register_opts(config.CONF)
        glance_store.create_stores(config.CONF)
        glance_store.verify_default_store()

        if cfg.CONF.profiler.enabled:
            _notifier = osprofiler.notifier.create("Messaging",
                                                   notifier.messaging, {},
                                                   notifier.get_transport(),
                                                   "glance", "api",
                                                   cfg.CONF.bind_host)
            osprofiler.notifier.set(_notifier)
        else:
            osprofiler.web.disable()

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-api'), default_port=9292)
        systemd.notify_once()
        server.wait()
    except exception.WorkerCreationFailure as e:
        fail(2, e)
    except RuntimeError as e:
        fail(1, e)
コード例 #8
0
ファイル: registry.py プロジェクト: HoratiusTang/glance
def main():
    try:
        config.parse_args()
        config.set_config_defaults()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')
        notifier.set_defaults()

        if cfg.CONF.profiler.enabled:
            _notifier = osprofiler.notifier.create("Messaging",
                                                   oslo_messaging, {},
                                                   notifier.get_transport(),
                                                   "glance", "registry",
                                                   cfg.CONF.bind_host)
            osprofiler.notifier.set(_notifier)
            osprofiler.web.enable(cfg.CONF.profiler.hmac_keys)
        else:
            osprofiler.web.disable()

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-registry'),
                     default_port=9191)
        server.wait()
    except RuntimeError as e:
        sys.exit("ERROR: %s" % encodeutils.exception_to_unicode(e))
コード例 #9
0
ファイル: api.py プロジェクト: starlingx-staging/stx-glance
def main():
    try:
        config.parse_args()
        config.set_config_defaults()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')
        notifier.set_defaults()

        # Shared data need to be initialized prior to fork()
        # so we need this before WSGI initialization in case it is
        # configured to use it
        cache_raw.initialize()

        if CONF.profiler.enabled:
            osprofiler.initializer.init_from_conf(conf=CONF,
                                                  context={},
                                                  project="glance",
                                                  service="api",
                                                  host=CONF.bind_host)

        server = wsgi.Server(initialize_glance_store=True)
        server.start(config.load_paste_app('glance-api'), default_port=9292)
        # Start RAW caching
        p = cache_raw.start_raw_caching(server)
        server.wait(p)

    except KNOWN_EXCEPTIONS as e:
        fail(e)
コード例 #10
0
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')
コード例 #11
0
ファイル: registry.py プロジェクト: p0i0/openstack-glance
def main():
    try:
        config.parse_args()
        config.set_config_defaults()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')
        notifier.set_defaults()

        if cfg.CONF.profiler.enabled:
            _notifier = osprofiler.notifier.create("Messaging",
                                                   oslo_messaging, {},
                                                   notifier.get_transport(),
                                                   "glance", "registry",
                                                   cfg.CONF.bind_host)
            osprofiler.notifier.set(_notifier)
            osprofiler.web.enable(cfg.CONF.profiler.hmac_keys)
        else:
            osprofiler.web.disable()

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-registry'),
                     default_port=9191)
        server.wait()
    except RuntimeError as e:
        sys.exit("ERROR: %s" % encodeutils.exception_to_unicode(e))
コード例 #12
0
ファイル: api.py プロジェクト: takanattie/glance
def main():
    try:
        config.parse_args()
        config.set_config_defaults()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')
        gmr.TextGuruMeditation.setup_autorun(version)
        notifier.set_defaults()

        if CONF.profiler.enabled:
            osprofiler.initializer.init_from_conf(
                conf=CONF,
                context={},
                project="glance",
                service="api",
                host=CONF.bind_host
            )

        # NOTE(danms): Configure system-wide threading model to use eventlet
        glance.async_.set_threadpool_model('eventlet')

        # NOTE(abhishekk): Added initialize_prefetcher KW argument to Server
        # object so that prefetcher object should only be initialized in case
        # of API service and ignored in case of registry. Once registry is
        # removed this parameter should be removed as well.
        initialize_prefetcher = False
        if CONF.paste_deploy.flavor == 'keystone+cachemanagement':
            initialize_prefetcher = True
        server = wsgi.Server(initialize_glance_store=True,
                             initialize_prefetcher=initialize_prefetcher)
        server.start(config.load_paste_app('glance-api'), default_port=9292)
        server.wait()
    except Exception as e:
        fail(e)
コード例 #13
0
    def _do_test_load_paste_app(self,
                                expected_app_type,
                                paste_group={},
                                paste_copy=True,
                                paste_append=None):

        conf = test_utils.TestConfigOpts(groups=paste_group, clean=False)

        def _appendto(orig, copy, str):
            shutil.copy(orig, copy)
            with open(copy, 'ab') as f:
                f.write(str or '')
                f.flush()

        paste_to = os.path.join(conf.temp_file.replace('.conf', '-paste.ini'))
        if paste_copy:
            paste_from = os.path.join(os.getcwd(),
                                      'etc/glance-registry-paste.ini')
            _appendto(paste_from, paste_to, paste_append)

        app = config.load_paste_app(conf, 'glance-registry')

        self.assertEquals(expected_app_type, type(app))

        if paste_copy:
            os.remove(conf.temp_file)
            os.remove(paste_to)
            os.rmdir(os.path.dirname(conf.temp_file))
コード例 #14
0
ファイル: test_common.py プロジェクト: Web5design/glance
 def setUp(self):
     """Establish a clean test environment"""
     super(TestMalformedRequest, self).setUp()
     self.config(flavor='',
                 group='paste_deploy',
                 config_file='etc/glance-api-paste.ini')
     self.api = config.load_paste_app('glance-api')
コード例 #15
0
def init_app():
    config_files = _get_config_files()
    CONF([], project='glance', default_config_files=config_files)
    logging.setup(CONF, "glance")
    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')
コード例 #16
0
    def _get_context(self):
        # (sdinescu)
        # This is the only way I found for this to properly load the
        # keystone parameters when loaded as a standalone app (by
        # using the glance-pruner) and when being used as part of
        # glance-api process chain
        config.load_paste_app('glance-api')

        k_cfg = CONF.keystone_authtoken
        auth = keystoneclient.Client(username=k_cfg.username,
                                     password=k_cfg.password,
                                     tenant_name=k_cfg.project_name,
                                     auth_url=k_cfg.auth_uri + "/v2.0")
        return RequestContext(auth_token=auth.session.get_token(),
                              user=k_cfg.username,
                              tenant=k_cfg.project_name,
                              show_deleted=True,
                              overwrite=False)
コード例 #17
0
ファイル: registry.py プロジェクト: bdelliott/glance
def main():
    try:
        config.parse_args()
        log.setup('glance')

        server = wsgi.Server()
        server.start(config.load_paste_app(), default_port=9191)
        server.wait()
    except RuntimeError as e:
        sys.exit("ERROR: %s" % e)
コード例 #18
0
ファイル: sync.py プロジェクト: joey5678/tricircle
def main():
    try:
        config.parse_args(default_config_files='glance-sync.conf')
        log.setup('glance')

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-sync'), default_port=9595)
        server.wait()
    except RuntimeError as e:
        sys.exit("ERROR: %s" % e)
コード例 #19
0
def main():
    try:
        config.parse_args()
        log.setup('glance')

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-registry'),
                     default_port=9191)
        server.wait()
    except RuntimeError as e:
        sys.exit("ERROR: %s" % e)
コード例 #20
0
    def test_load_paste_app(self):
        path = os.path.join(os.getcwd(), 'etc/glance-api.conf')

        self.stubs.Set(config, 'setup_logging', lambda *a: None)
        self.stubs.Set(images, 'create_resource', lambda *a: None)
        self.stubs.Set(members, 'create_resource', lambda *a: None)

        conf, app = config.load_paste_app('glance-api', {}, [path])

        self.assertEquals('file', conf['default_store'])
        self.assertEquals(version_negotiation.VersionNegotiationFilter,
                          type(app))
コード例 #21
0
def main():
    try:
        config.parse_args(default_config_files='glance-sync.conf')
        log.setup('glance')

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-sync'), default_port=9595)
        server.wait()
    except exception.WorkerCreationFailure as e:
        fail(2, e)
    except RuntimeError as e:
        fail(1, e)
コード例 #22
0
ファイル: sync.py プロジェクト: aliliang/tricircle
def main():
    try:
        config.parse_args(default_config_files='glance-sync.conf')
        log.setup('glance')

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-sync'), default_port=9595)
        server.wait()
    except exception.WorkerCreationFailure as e:
        fail(2, e)
    except RuntimeError as e:
        fail(1, e)
コード例 #23
0
ファイル: test_config.py プロジェクト: baadshah02/glance
    def test_load_paste_app(self):
        conf = config.GlanceConfigOpts()
        conf(['--config-file',
              os.path.join(os.getcwd(), 'etc/glance-api.conf')])

        self.stubs.Set(config, 'setup_logging', lambda *a: None)
        self.stubs.Set(images, 'create_resource', lambda *a: None)
        self.stubs.Set(members, 'create_resource', lambda *a: None)

        app = config.load_paste_app(conf, 'glance-api')

        self.assertEquals(version_negotiation.VersionNegotiationFilter,
                          type(app))
コード例 #24
0
    def test_load_paste_app(self):
        conf = config.GlanceConfigOpts()
        conf([
            '--config-file',
            os.path.join(os.getcwd(), 'etc/glance-api.conf')
        ])

        self.stubs.Set(config, 'setup_logging', lambda *a: None)
        self.stubs.Set(images, 'create_resource', lambda *a: None)
        self.stubs.Set(members, 'create_resource', lambda *a: None)

        app = config.load_paste_app(conf, 'glance-api')

        self.assertEquals(version_negotiation.VersionNegotiationFilter,
                          type(app))
コード例 #25
0
ファイル: api.py プロジェクト: flwang/glance
def main():
    try:
        config.parse_args()
        log.setup('glance')

        glance.store.create_stores()
        glance.store.verify_default_store()

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-api'), default_port=9292)
        server.wait()
    except exception.WorkerCreationFailure as e:
        fail(2, e)
    except RuntimeError as e:
        fail(1, e)
コード例 #26
0
ファイル: api.py プロジェクト: manuparra/oc2dm
def main():
    try:
        config.parse_args()
        config.set_config_defaults()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')
        notifier.set_defaults()

        osprofiler.web.disable()

        server = wsgi.Server(initialize_glance_store=True)
        server.start(config.load_paste_app('glance-api'), default_port=9292)
        server.wait()
    except KNOWN_EXCEPTIONS as e:
        fail(e)
コード例 #27
0
def main():
    try:
        config.parse_args()
        log.setup('glance')

        glance.store.create_stores()
        glance.store.verify_default_store()

        server = wsgi.Server()
        server.start(config.load_paste_app(), default_port=9292)
        server.wait()
    except exception.WorkerCreationFailure as e:
        fail(2, e)
    except RuntimeError as e:
        fail(1, e)
コード例 #28
0
ファイル: wsgi_app.py プロジェクト: mahak/glance
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')
コード例 #29
0
ファイル: api.py プロジェクト: lorenzocomotti/glance
def main():
    try:
        config.parse_args()
        config.set_config_defaults()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')
        gmr.TextGuruMeditation.setup_autorun(version)
        notifier.set_defaults()

        if CONF.profiler.enabled:
            osprofiler.initializer.init_from_conf(
                conf=CONF,
                context={},
                project="glance",
                service="api",
                host=CONF.bind_host
            )

        if CONF.enforce_secure_rbac != CONF.oslo_policy.enforce_new_defaults:
            fail_message = (
                "[DEFAULT] enforce_secure_rbac does not match "
                "[oslo_policy] enforce_new_defaults. Please set both to "
                "True to enable secure RBAC personas. Otherwise, make sure "
                "both are False.")
            raise exception.ServerError(fail_message)

        # NOTE(danms): Configure system-wide threading model to use eventlet
        glance.async_.set_threadpool_model('eventlet')

        # NOTE(abhishekk): Added initialize_prefetcher KW argument to Server
        # object so that prefetcher object should only be initialized in case
        # of API service and ignored in case of registry. Once registry is
        # removed this parameter should be removed as well.
        initialize_prefetcher = False
        if CONF.paste_deploy.flavor == 'keystone+cachemanagement':
            initialize_prefetcher = True
        server = wsgi.Server(initialize_glance_store=True,
                             initialize_prefetcher=initialize_prefetcher)
        server.start(config.load_paste_app('glance-api'), default_port=9292)
        server.wait()
    except Exception as e:
        fail(e)
コード例 #30
0
ファイル: test_config.py プロジェクト: altai/glance
    def test_load_paste_app_with_conf_name(self):
        def fake_join(*args):
            if (len(args) == 2 and args[0].endswith('.glance')
                    and args[1] == 'glance-cache.conf'):
                return os.path.join(os.getcwd(), 'etc', args[1])
            else:
                return orig_join(*args)

        orig_join = os.path.join
        self.stubs.Set(os.path, 'join', fake_join)

        conf = config.GlanceCacheConfigOpts()
        conf([])

        self.stubs.Set(config, 'setup_logging', lambda *a: None)
        self.stubs.Set(pruner, 'Pruner', lambda conf, **lc: 'pruner')

        app = config.load_paste_app(conf, 'glance-pruner')

        self.assertEquals('pruner', app)
コード例 #31
0
    def test_load_paste_app_with_conf_name(self):
        def fake_join(*args):
            if len(args) == 2 and \
                    args[0].endswith('.glance') and \
                    args[1] == 'glance-cache.conf':
                return os.path.join(os.getcwd(), 'etc', args[1])
            else:
                return orig_join(*args)

        orig_join = os.path.join
        self.stubs.Set(os.path, 'join', fake_join)

        self.stubs.Set(config, 'setup_logging', lambda *a: None)
        self.stubs.Set(pruner, 'app_factory', lambda *a: 'pruner')

        conf, app = config.load_paste_app('glance-pruner', {}, [],
                                          'glance-cache')

        self.assertEquals('86400', conf['image_cache_stall_time'])
        self.assertEquals('pruner', app)
コード例 #32
0
def main():
    try:
        config.parse_args()
        config.set_config_defaults()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')
        notifier.set_defaults()

        if CONF.profiler.enabled:
            osprofiler.initializer.init_from_conf(conf=CONF,
                                                  context={},
                                                  project="glance",
                                                  service="api",
                                                  host=CONF.bind_host)

        server = wsgi.Server(initialize_glance_store=True)
        server.start(config.load_paste_app('glance-api'), default_port=9292)
        server.wait()
    except KNOWN_EXCEPTIONS as e:
        fail(e)
コード例 #33
0
ファイル: registry.py プロジェクト: sayalilunkad/glance
def main():
    try:
        config.parse_args()
        wsgi.set_eventlet_hub()
        log.setup("glance")

        if cfg.CONF.profiler.enabled:
            _notifier = osprofiler.notifier.create(
                "Messaging", notifier.messaging, {}, notifier.get_transport(), "glance", "registry", cfg.CONF.bind_host
            )
            osprofiler.notifier.set(_notifier)

        else:
            osprofiler.web.disable()

        server = wsgi.Server()
        server.start(config.load_paste_app("glance-registry"), default_port=9191)
        server.wait()
    except RuntimeError as e:
        sys.exit("ERROR: %s" % utils.exception_to_str(e))
コード例 #34
0
ファイル: glare.py プロジェクト: HoratiusTang/glance
def main():
    try:
        config.parse_args()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glare')

        if cfg.CONF.profiler.enabled:
            _notifier = osprofiler.notifier.create("Messaging",
                                                   oslo_messaging, {},
                                                   notifier.get_transport(),
                                                   "glance", "artifacts",
                                                   cfg.CONF.bind_host)
            osprofiler.notifier.set(_notifier)
        else:
            osprofiler.web.disable()

        server = wsgi.Server(initialize_glance_store=True)
        server.start(config.load_paste_app('glare-api'), default_port=9494)
        server.wait()
    except KNOWN_EXCEPTIONS as e:
        fail(e)
コード例 #35
0
ファイル: api.py プロジェクト: vefimova/glance
def main():
    try:
        config.parse_args()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')

        if cfg.CONF.profiler.enabled:
            _notifier = osprofiler.notifier.create("Messaging",
                                                   notifier.messaging, {},
                                                   notifier.get_transport(),
                                                   "glance", "api",
                                                   cfg.CONF.bind_host)
            osprofiler.notifier.set(_notifier)
        else:
            osprofiler.web.disable()

        server = wsgi.Server(initialize_glance_store=True)
        server.start(config.load_paste_app('glance-api'), default_port=9292)
        server.wait()
    except KNOWN_EXCEPTIONS as e:
        fail(e)
コード例 #36
0
ファイル: registry.py プロジェクト: bopopescu/OpenStack-Stein
def main():
    try:
        config.parse_args()
        config.set_config_defaults()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')
        notifier.set_defaults()

        if CONF.profiler.enabled:
            osprofiler.initializer.init_from_conf(conf=CONF,
                                                  context={},
                                                  project="glance",
                                                  service="registry",
                                                  host=CONF.bind_host)

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-registry'),
                     default_port=9191)
        server.wait()
    except RuntimeError as e:
        sys.exit("ERROR: %s" % encodeutils.exception_to_unicode(e))
コード例 #37
0
ファイル: api.py プロジェクト: xww/myglance
def main():
    try:
        config.parse_args()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')

        #if cfg.CONF.profiler.enabled:
        #    _notifier = osprofiler.notifier.create("Messaging",
        #                                           oslo_messaging, {},
        #                                           notifier.get_transport(),
        #                                           "glance", "api",
        #                                           cfg.CONF.bind_host)
        #    osprofiler.notifier.set(_notifier)
        #else:
        #    osprofiler.web.disable()

        server = wsgi.Server(initialize_glance_store=True)
        server.start(config.load_paste_app('pdl'), default_port=9292)
        server.wait()
    except KNOWN_EXCEPTIONS as e:
        fail(e)
コード例 #38
0
ファイル: test_config.py プロジェクト: AsylumCorp/glance
    def test_load_paste_app_with_conf_name(self):
        def fake_join(*args):
            if (len(args) == 2 and
                args[0].endswith('.glance') and
                args[1] == 'glance-cache.conf'):
                return os.path.join(os.getcwd(), 'etc', args[1])
            else:
                return orig_join(*args)

        orig_join = os.path.join
        self.stubs.Set(os.path, 'join', fake_join)

        conf = config.GlanceCacheConfigOpts()
        conf([])

        self.stubs.Set(config, 'setup_logging', lambda *a: None)
        self.stubs.Set(pruner, 'Pruner', lambda conf, **lc: 'pruner')

        app = config.load_paste_app(conf, 'glance-pruner')

        self.assertEquals('pruner', app)
コード例 #39
0
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')
コード例 #40
0
ファイル: test_config.py プロジェクト: jameslord/glance
    def _do_test_load_paste_app(self,
                                expected_app_type,
                                make_paste_file=True,
                                paste_flavor=None,
                                paste_config_file=None,
                                paste_append=None):

        def _writeto(path, str):
            with open(path, 'wb') as f:
                f.write(str or '')
                f.flush()

        def _appendto(orig, copy, str):
            shutil.copy(orig, copy)
            with open(copy, 'ab') as f:
                f.write(str or '')
                f.flush()

        self.config(flavor=paste_flavor,
                    config_file=paste_config_file,
                    group='paste_deploy')

        temp_file = os.path.join(tempfile.mkdtemp(), 'testcfg.conf')

        try:
            _writeto(temp_file, '[DEFAULT]\n')

            config.parse_args(['--config-file', temp_file])

            paste_to = temp_file.replace('.conf', '-paste.ini')
            if not paste_config_file and make_paste_file:
                paste_from = os.path.join(os.getcwd(),
                                          'etc/glance-registry-paste.ini')
                _appendto(paste_from, paste_to, paste_append)

            app = config.load_paste_app('glance-registry')

            self.assertEquals(expected_app_type, type(app))
        finally:
            shutil.rmtree(os.path.dirname(temp_file))
コード例 #41
0
ファイル: api.py プロジェクト: mahak/glance
def main():
    try:
        config.parse_args()
        config.set_config_defaults()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')
        notifier.set_defaults()

        if CONF.profiler.enabled:
            osprofiler.initializer.init_from_conf(
                conf=CONF,
                context={},
                project="glance",
                service="api",
                host=CONF.bind_host
            )

        server = wsgi.Server(initialize_glance_store=True)
        server.start(config.load_paste_app('glance-api'), default_port=9292)
        server.wait()
    except Exception as e:
        fail(e)
コード例 #42
0
ファイル: search.py プロジェクト: Dynavisor/glance
def main():
    try:
        config.parse_args()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')

        if cfg.CONF.profiler.enabled:
            _notifier = osprofiler.notifier.create("Messaging",
                                                   notifier.messaging, {},
                                                   notifier.get_transport(),
                                                   "glance", "search",
                                                   cfg.CONF.bind_host)
            osprofiler.notifier.set(_notifier)
        else:
            osprofiler.web.disable()

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-search'),
                     default_port=9393)
        server.wait()
    except KNOWN_EXCEPTIONS as e:
        fail(e)
コード例 #43
0
    def _do_test_load_paste_app(self,
                                expected_app_type,
                                make_paste_file=True,
                                paste_flavor=None,
                                paste_config_file=None,
                                paste_append=None):

        def _writeto(path, str):
            with open(path, 'w') as f:
                f.write(str or '')
                f.flush()

        def _appendto(orig, copy, str):
            shutil.copy(orig, copy)
            with open(copy, 'a') as f:
                f.write(str or '')
                f.flush()

        self.config(flavor=paste_flavor,
                    config_file=paste_config_file,
                    group='paste_deploy')

        temp_dir = self.useFixture(fixtures.TempDir()).path
        temp_file = os.path.join(temp_dir, 'testcfg.conf')

        _writeto(temp_file, '[DEFAULT]\n')

        config.parse_args(['--config-file', temp_file])

        paste_to = temp_file.replace('.conf', '-paste.ini')
        if not paste_config_file and make_paste_file:
            paste_from = os.path.join(os.getcwd(),
                                      'etc/glance-registry-paste.ini')
            _appendto(paste_from, paste_to, paste_append)

        app = config.load_paste_app('glance-registry')

        self.assertIsInstance(app, expected_app_type)
コード例 #44
0
    def _do_test_load_paste_app(self,
                                expected_app_type,
                                make_paste_file=True,
                                paste_flavor=None,
                                paste_config_file=None,
                                paste_append=None):

        def _writeto(path, str):
            with open(path, 'wb') as f:
                f.write(str or '')
                f.flush()

        def _appendto(orig, copy, str):
            shutil.copy(orig, copy)
            with open(copy, 'ab') as f:
                f.write(str or '')
                f.flush()

        self.config(flavor=paste_flavor,
                    config_file=paste_config_file,
                    group='paste_deploy')

        temp_dir = self.useFixture(fixtures.TempDir()).path
        temp_file = os.path.join(temp_dir, 'testcfg.conf')

        _writeto(temp_file, '[DEFAULT]\n')

        config.parse_args(['--config-file', temp_file])

        paste_to = temp_file.replace('.conf', '-paste.ini')
        if not paste_config_file and make_paste_file:
            paste_from = os.path.join(os.getcwd(),
                                      'etc/glance-registry-paste.ini')
            _appendto(paste_from, paste_to, paste_append)

        app = config.load_paste_app('glance-registry')

        self.assertIsInstance(app, expected_app_type)
コード例 #45
0
ファイル: registry.py プロジェクト: mahak/glance
def main():
    try:
        config.parse_args()
        config.set_config_defaults()
        wsgi.set_eventlet_hub()
        logging.setup(CONF, 'glance')
        notifier.set_defaults()

        if CONF.profiler.enabled:
            osprofiler.initializer.init_from_conf(
                conf=CONF,
                context={},
                project="glance",
                service="registry",
                host=CONF.bind_host
            )

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-registry'),
                     default_port=9191)
        server.wait()
    except RuntimeError as e:
        sys.exit("ERROR: %s" % encodeutils.exception_to_unicode(e))
コード例 #46
0
ファイル: registry.py プロジェクト: ynshenoy/glance
def main():
    try:
        config.parse_args()
        wsgi.set_eventlet_hub()
        log.setup('glance')

        if cfg.CONF.profiler.enabled:
            _notifier = osprofiler.notifier.create("Messaging",
                                                   notifier.messaging, {},
                                                   notifier.get_transport(),
                                                   "glance", "registry",
                                                   cfg.CONF.bind_host)
            osprofiler.notifier.set(_notifier)

        else:
            osprofiler.web.disable()

        server = wsgi.Server()
        server.start(config.load_paste_app('glance-registry'),
                     default_port=9191)
        server.wait()
    except RuntimeError as e:
        sys.exit("ERROR: %s" % e)