summaryrefslogtreecommitdiffstats
path: root/keystone-moon/keystone/service.py
diff options
context:
space:
mode:
Diffstat (limited to 'keystone-moon/keystone/service.py')
-rw-r--r--keystone-moon/keystone/service.py138
1 files changed, 34 insertions, 104 deletions
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)