summaryrefslogtreecommitdiffstats
path: root/keystone/token
diff options
context:
space:
mode:
authorDolph Mathews <dolph.mathews@gmail.com>2012-12-19 10:04:21 -0600
committerDolph Mathews <dolph.mathews@gmail.com>2012-12-21 11:57:44 -0600
commit03eb2801a3ad38a39e9cf127c05ab710bf38ee1d (patch)
treec91ae80657c574cabcecf5abfa78f3940392c517 /keystone/token
parentac2d92ca2eea1070f765be320acb62fd5bef6dd3 (diff)
Driver registry
Uses automatic dependency injection to provide controllers with driver interfaces (identity_api, token_api, etc). See tests/test_injection.py for a self-contained example. Change-Id: I255087de534292fbf57a45b19f97488f831f607c
Diffstat (limited to 'keystone/token')
-rw-r--r--keystone/token/controllers.py2
-rw-r--r--keystone/token/core.py4
-rw-r--r--keystone/token/routers.py6
3 files changed, 6 insertions, 6 deletions
diff --git a/keystone/token/controllers.py b/keystone/token/controllers.py
index 3a2d710d..105fc9a0 100644
--- a/keystone/token/controllers.py
+++ b/keystone/token/controllers.py
@@ -4,6 +4,7 @@ import json
from keystone import config
from keystone.common import cms
from keystone.common import controller
+from keystone.common import dependency
from keystone.common import logging
from keystone import exception
from keystone.openstack.common import timeutils
@@ -18,6 +19,7 @@ class ExternalAuthNotApplicable(Exception):
pass
+@dependency.requires('catalog_api')
class Auth(controller.V2Controller):
def ca_cert(self, context, auth=None):
ca_file = open(config.CONF.signing.ca_certs, 'r')
diff --git a/keystone/token/core.py b/keystone/token/core.py
index bb7a705b..e8da9f1d 100644
--- a/keystone/token/core.py
+++ b/keystone/token/core.py
@@ -18,8 +18,9 @@
import datetime
-from keystone.common import manager
from keystone.common import cms
+from keystone.common import dependency
+from keystone.common import manager
from keystone import config
from keystone import exception
from keystone.openstack.common import timeutils
@@ -54,6 +55,7 @@ def default_expire_time():
return timeutils.utcnow() + expire_delta
+@dependency.provider('token_api')
class Manager(manager.Manager):
"""Default pivot point for the Token backend.
diff --git a/keystone/token/routers.py b/keystone/token/routers.py
index 7ff883f6..6b22f648 100644
--- a/keystone/token/routers.py
+++ b/keystone/token/routers.py
@@ -18,12 +18,8 @@ from keystone.token import controllers
class Router(wsgi.ComposableRouter):
- def __init__(self, apis):
- self.apis = apis
- super(Router, self).__init__()
-
def add_routes(self, mapper):
- token_controller = controllers.Auth(**self.apis)
+ token_controller = controllers.Auth()
mapper.connect('/tokens',
controller=token_controller,
action='authenticate',