Skip to content

Instantly share code, notes, and snippets.

@tempusfrangit
Last active August 29, 2015 14:09
Show Gist options
  • Save tempusfrangit/54806f072e93aaf0ddfe to your computer and use it in GitHub Desktop.
Save tempusfrangit/54806f072e93aaf0ddfe to your computer and use it in GitHub Desktop.
Kilo Summit Summary
diff --git a/keystone/assignment/core.py b/keystone/assignment/core.py
index a16aafc..1cb808e 100644
--- a/keystone/assignment/core.py
+++ b/keystone/assignment/core.py
@@ -48,9 +48,6 @@ def calc_default_domain():
'name': u'Default'}
-@dependency.provider('assignment_api')
-@dependency.optional('revoke_api')
-@dependency.requires('credential_api', 'identity_api')
class Manager(manager.Manager):
"""Default pivot point for the Assignment backend.
@@ -64,7 +61,10 @@ class Manager(manager.Manager):
_ROLE_REMOVED_FROM_USER = 'role_removed_from_user'
_INVALIDATION_USER_PROJECT_TOKENS = 'invalidate_user_project_tokens'
- def __init__(self):
+ def __init__(self, credential_api, identity_api, revoke_api=None):
+ self.credential_api = credential_api
+ self.identity_api = identity_api
+ self.revoke_api = self.revoke_api
assignment_driver = CONF.assignment.driver
if assignment_driver is None:
diff --git a/keystone/backends.py b/keystone/backends.py
index 265daec..07188b4 100644
--- a/keystone/backends.py
+++ b/keystone/backends.py
@@ -28,20 +28,25 @@ def load_backends():
# Configure and build the cache
cache.configure_cache_region(cache.REGION)
- # 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()
+ if revoke_extension.enabled:
+ revoke_api = revoke_extension.Manager()
+ else:
+ revoke_api = None
+
+ identity_api = identity.Manager()
+ credential_api=credential.Manager(),
+ assignment_api=assignment.Manager(credential_api, identity_api,
+ revoke_api=revoke_api)
DRIVERS = dict(
assignment_api=assignment.Manager(),
catalog_api=catalog.Manager(),
- credential_api=credential.Manager(),
+ credential_api=credential_api,
endpoint_filter_api=endpoint_filter.Manager(),
endpoint_policy_api=endpoint_policy.Manager(),
id_generator_api=identity.generator.Manager(),
id_mapping_api=identity.MappingManager(),
- identity_api=_IDENTITY_API,
+ identity_api=identity_api,
policy_api=policy.Manager(),
token_api=token.persistence.Manager(),
trust_api=trust.Manager(),
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment