summaryrefslogtreecommitdiffstats
path: root/keystone/service.py
diff options
context:
space:
mode:
Diffstat (limited to 'keystone/service.py')
-rw-r--r--keystone/service.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/keystone/service.py b/keystone/service.py
index 6b0c3708..ce64aba8 100644
--- a/keystone/service.py
+++ b/keystone/service.py
@@ -16,8 +16,10 @@
import routes
+from keystone import assignment
from keystone import auth
from keystone import catalog
+from keystone.common import dependency
from keystone.common import logging
from keystone.common import wsgi
from keystone import config
@@ -34,16 +36,25 @@ from keystone import trust
CONF = config.CONF
LOG = logging.getLogger(__name__)
+
+# 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(),
credentials_api=credential.Manager(),
ec2_api=ec2.Manager(),
- identity_api=identity.Manager(),
+ identity_api=_IDENTITY_API,
policy_api=policy.Manager(),
token_api=token.Manager(),
trust_api=trust.Manager(),
token_provider_api=token.provider.Manager())
+dependency.resolve_future_dependencies()
+
@logging.fail_gracefully
def public_app_factory(global_conf, **local_conf):