diff options
author | Brant Knudson <bknudson@us.ibm.com> | 2013-07-19 17:11:43 -0500 |
---|---|---|
committer | Brant Knudson <bknudson@us.ibm.com> | 2013-07-31 12:04:30 -0500 |
commit | 3268a4b96449647faa76e5521660516fbc9e8a84 (patch) | |
tree | 4af0e6e13827c6df5cecb28b1a663ad2de1d3274 /keystone/identity | |
parent | 3c6cc9e838cacd1f7c0a3cfc89b0f66b23851803 (diff) | |
download | keystone-3268a4b96449647faa76e5521660516fbc9e8a84.tar.gz keystone-3268a4b96449647faa76e5521660516fbc9e8a84.tar.xz keystone-3268a4b96449647faa76e5521660516fbc9e8a84.zip |
Use dependency injection for assignment and identity
The assignment and identity backends don't use normal
dependency injection because of a circular reference.
Support for circular references was added, so these
backends can now use normal dependency injection.
Fixes: bug 1200769
Fixes: bug 1204605
Change-Id: I8716a65b984c26fcaaf2595463db09e1f02cb475
Diffstat (limited to 'keystone/identity')
-rw-r--r-- | keystone/identity/backends/ldap.py | 2 | ||||
-rw-r--r-- | keystone/identity/backends/sql.py | 2 | ||||
-rw-r--r-- | keystone/identity/core.py | 8 |
3 files changed, 6 insertions, 6 deletions
diff --git a/keystone/identity/backends/ldap.py b/keystone/identity/backends/ldap.py index f9e546a9..09de0baf 100644 --- a/keystone/identity/backends/ldap.py +++ b/keystone/identity/backends/ldap.py @@ -19,6 +19,7 @@ import uuid import ldap from keystone import clean +from keystone.common import dependency from keystone.common import ldap as common_ldap from keystone.common import logging from keystone.common import models @@ -38,6 +39,7 @@ DEFAULT_DOMAIN = { } +@dependency.requires('assignment_api') class Identity(identity.Driver): def __init__(self): super(Identity, self).__init__() diff --git a/keystone/identity/backends/sql.py b/keystone/identity/backends/sql.py index ba97758c..bff41106 100644 --- a/keystone/identity/backends/sql.py +++ b/keystone/identity/backends/sql.py @@ -14,6 +14,7 @@ # License for the specific language governing permissions and limitations # under the License. +from keystone.common import dependency from keystone.common import sql from keystone.common.sql import migration from keystone.common import utils @@ -61,6 +62,7 @@ class UserGroupMembership(sql.ModelBase, sql.DictBase): primary_key=True) +@dependency.requires('assignment_api') class Identity(sql.Base, identity.Driver): def default_assignment_driver(self): return "keystone.assignment.backends.sql.Assignment" diff --git a/keystone/identity/core.py b/keystone/identity/core.py index 3d9bcf62..b2b3eaf0 100644 --- a/keystone/identity/core.py +++ b/keystone/identity/core.py @@ -16,7 +16,6 @@ """Main entry point into the Identity service.""" -from keystone import assignment from keystone import clean from keystone.common import dependency from keystone.common import logging @@ -53,6 +52,7 @@ def filter_user(user_ref): @dependency.provider('identity_api') +@dependency.requires('assignment_api') class Manager(manager.Manager): """Default pivot point for the Identity backend. @@ -61,12 +61,8 @@ class Manager(manager.Manager): """ - def __init__(self, assignment_api=None): + def __init__(self): super(Manager, self).__init__(CONF.identity.driver) - if assignment_api is None: - assignment_api = assignment.Manager(self) - self.assignment_api = assignment_api - self.driver.assignment_api = assignment_api def create_user(self, user_id, user_ref): user = user_ref.copy() |