¡@

Home 

OpenStack Study: service.py

OpenStack Index

**** CubicPower OpenStack Study ****

def load_backends():

    # Configure and build the cache

    cache.configure_cache_region(cache.REGION)

    # Ensure that the identity driver is created before the assignment manager.

    # The default assignment driver is determined by the identity driver, so

    # the identity driver must be available to the assignment manager.

    _IDENTITY_API = identity.Manager()

    DRIVERS = dict(

        assignment_api=assignment.Manager(),

        catalog_api=catalog.Manager(),

        credential_api=credential.Manager(),

        endpoint_filter_api=endpoint_filter.Manager(),

        identity_api=_IDENTITY_API,

        policy_api=policy.Manager(),

        token_api=token.Manager(),

        trust_api=trust.Manager(),

        token_provider_api=token.provider.Manager())

    auth.controllers.load_auth_methods()

    return DRIVERS

**** CubicPower OpenStack Study ****

def fail_gracefully(f):

    """Logs exceptions and aborts."""

    @functools.wraps(f)

    def wrapper(*args, **kw):

        try:

            return f(*args, **kw)

        except Exception as e:

            LOG.debug(e, exc_info=True)

            # exception message is printed to all logs

            LOG.critical(e)

            sys.exit(1)

    return wrapper

@fail_gracefully

**** CubicPower OpenStack Study ****

def public_app_factory(global_conf, **local_conf):

    controllers.register_version('v2.0')

    conf = global_conf.copy()

    conf.update(local_conf)

    return wsgi.ComposingRouter(routes.Mapper(),

                                [assignment.routers.Public(),

                                 token.routers.Router(),

                                 routers.VersionV2('public'),

                                 routers.Extension(False)])

@fail_gracefully

**** CubicPower OpenStack Study ****

def admin_app_factory(global_conf, **local_conf):

    conf = global_conf.copy()

    conf.update(local_conf)

    return wsgi.ComposingRouter(routes.Mapper(),

                                [identity.routers.Admin(),

                                 assignment.routers.Admin(),

                                    token.routers.Router(),

                                    routers.VersionV2('admin'),

                                    routers.Extension()])

@fail_gracefully

**** CubicPower OpenStack Study ****

def public_version_app_factory(global_conf, **local_conf):

    conf = global_conf.copy()

    conf.update(local_conf)

    return wsgi.ComposingRouter(routes.Mapper(),

                                [routers.Versions('public')])

@fail_gracefully

**** CubicPower OpenStack Study ****

def admin_version_app_factory(global_conf, **local_conf):

    conf = global_conf.copy()

    conf.update(local_conf)

    return wsgi.ComposingRouter(routes.Mapper(),

                                [routers.Versions('admin')])

@fail_gracefully

**** CubicPower OpenStack Study ****

def v3_app_factory(global_conf, **local_conf):

    controllers.register_version('v3')

    conf = global_conf.copy()

    conf.update(local_conf)

    mapper = routes.Mapper()

    v3routers = []

    for module in [assignment, auth, catalog, credential, identity, policy]:

        module.routers.append_v3_routers(mapper, v3routers)

    if CONF.trust.enabled:

        trust.routers.append_v3_routers(mapper, v3routers)

    # Add in the v3 version api

    v3routers.append(routers.VersionV3('admin'))

    v3routers.append(routers.VersionV3('public'))

    # TODO(ayoung): put token routes here

    return wsgi.ComposingRouter(mapper, v3routers)