From 2e7b4f2027a1147ca28301e4f88adf8274b39a1f Mon Sep 17 00:00:00 2001 From: DUVAL Thomas Date: Thu, 9 Jun 2016 09:11:50 +0200 Subject: Update Keystone core to Mitaka. Change-Id: Ia10d6add16f4a9d25d1f42d420661c46332e69db --- keystone-moon/keystone/service.py | 138 ++++++++++---------------------------- 1 file changed, 34 insertions(+), 104 deletions(-) (limited to 'keystone-moon/keystone/service.py') diff --git a/keystone-moon/keystone/service.py b/keystone-moon/keystone/service.py index 35b548fa..20869731 100644 --- a/keystone-moon/keystone/service.py +++ b/keystone-moon/keystone/service.py @@ -12,120 +12,50 @@ # License for the specific language governing permissions and limitations # under the License. -import functools -import sys - -from oslo_config import cfg -from oslo_log import log -from paste import deploy -import routes - -from keystone import assignment -from keystone import auth -from keystone import catalog -from keystone.common import wsgi -from keystone import controllers -from keystone import credential -from keystone import endpoint_policy -from keystone import identity -from keystone import policy -from keystone import resource -from keystone import routers -from keystone import token -from keystone import trust - - -CONF = cfg.CONF -LOG = log.getLogger(__name__) - - -def loadapp(conf, name): - # NOTE(blk-u): Save the application being loaded in the controllers module. - # This is similar to how public_app_factory() and v3_app_factory() - # register the version with the controllers module. - controllers.latest_app = deploy.loadapp(conf, name=name) - return controllers.latest_app - - -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 +from oslo_log import versionutils +import six + +from keystone.version import service + + +def deprecated_to_version(f): + """Specialized deprecation wrapper for service module. + + This wraps the standard deprecation wrapper and fills in the method + names automatically. + + """ + @six.wraps(f) + def wrapper(*args, **kwargs): + x = versionutils.deprecated( + what='keystone.service.' + f.__name__ + '()', + as_of=versionutils.deprecated.MITAKA, + remove_in=+2, + in_favor_of='keystone.version.service.' + f.__name__ + '()') + return x(f) + return wrapper() + + +@deprecated_to_version def public_app_factory(global_conf, **local_conf): - controllers.register_version('v2.0') - return wsgi.ComposingRouter(routes.Mapper(), - [assignment.routers.Public(), - token.routers.Router(), - routers.VersionV2('public'), - routers.Extension(False)]) + return service.public_app_factory(global_conf, **local_conf) -@fail_gracefully +@deprecated_to_version def admin_app_factory(global_conf, **local_conf): - controllers.register_version('v2.0') - return wsgi.ComposingRouter(routes.Mapper(), - [identity.routers.Admin(), - assignment.routers.Admin(), - token.routers.Router(), - resource.routers.Admin(), - routers.VersionV2('admin'), - routers.Extension()]) + return service.admin_app_factory(global_conf, **local_conf) -@fail_gracefully +@deprecated_to_version def public_version_app_factory(global_conf, **local_conf): - return wsgi.ComposingRouter(routes.Mapper(), - [routers.Versions('public')]) + return service.public_version_app_factory(global_conf, **local_conf) -@fail_gracefully +@deprecated_to_version def admin_version_app_factory(global_conf, **local_conf): - return wsgi.ComposingRouter(routes.Mapper(), - [routers.Versions('admin')]) + return service.admin_app_factory(global_conf, **local_conf) -@fail_gracefully +@deprecated_to_version def v3_app_factory(global_conf, **local_conf): - controllers.register_version('v3') - mapper = routes.Mapper() - sub_routers = [] - _routers = [] - - # NOTE(dstanek): Routers should be ordered by their frequency of use in - # a live system. This is due to the routes implementation. The most - # frequently used routers should appear first. - router_modules = [auth, - assignment, - catalog, - credential, - identity, - policy, - resource] - - if CONF.trust.enabled: - router_modules.append(trust) - - if CONF.endpoint_policy.enabled: - router_modules.append(endpoint_policy) - - for module in router_modules: - routers_instance = module.routers.Routers() - _routers.append(routers_instance) - routers_instance.append_v3_routers(mapper, sub_routers) - - # Add in the v3 version api - sub_routers.append(routers.VersionV3('public', _routers)) - return wsgi.ComposingRouter(mapper, sub_routers) + return service.v3_app_factory(global_conf, **local_conf) -- cgit 1.2.3-korg