From 03eb2801a3ad38a39e9cf127c05ab710bf38ee1d Mon Sep 17 00:00:00 2001 From: Dolph Mathews Date: Wed, 19 Dec 2012 10:04:21 -0600 Subject: 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 --- keystone/token/controllers.py | 2 ++ keystone/token/core.py | 4 +++- keystone/token/routers.py | 6 +----- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'keystone/token') 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', -- cgit