diff options
author | Boris Bobrov <bbobrov@mirantis.com> | 2015-12-09 20:45:50 +0300 |
---|---|---|
committer | Steve Martinelli <stevemar@ca.ibm.com> | 2016-03-08 07:57:23 +0000 |
commit | cf9ebb4d0fc122f9a06188ab06b6523959ec654f (patch) | |
tree | 41fef0ec68073acc6908f831880d6076ae509dd1 | |
parent | c665080d4a700b6d92f29c40621d83bd7365de34 (diff) | |
download | keystone-cf9ebb4d0fc122f9a06188ab06b6523959ec654f.tar.gz |
Store config in drivers and use it to get list_limit
With domain-specific configs, different drivers will be used for
different domains. Options might be different for these drivers. For
example, user might want to user different list_limit for a domain.
Partial-Bug: 1495669
Change-Id: I706843d7860ec5718c9fbf62af7a65b89b67e4b3
(cherry picked from commit 5d9a16d19735be0c02bd1ba7090720bba3d58613)
-rw-r--r-- | keystone/identity/backends/ldap.py | 8 | ||||
-rw-r--r-- | keystone/identity/backends/sql.py | 1 | ||||
-rw-r--r-- | keystone/identity/core.py | 9 |
3 files changed, 14 insertions, 4 deletions
diff --git a/keystone/identity/backends/ldap.py b/keystone/identity/backends/ldap.py index 1f33bacb3..d8ab7d5eb 100644 --- a/keystone/identity/backends/ldap.py +++ b/keystone/identity/backends/ldap.py @@ -36,9 +36,11 @@ class Identity(identity.IdentityDriverV8): def __init__(self, conf=None): super(Identity, self).__init__() if conf is None: - conf = CONF - self.user = UserApi(conf) - self.group = GroupApi(conf) + self.conf = CONF + else: + self.conf = conf + self.user = UserApi(self.conf) + self.group = GroupApi(self.conf) def default_assignment_driver(self): return 'ldap' diff --git a/keystone/identity/backends/sql.py b/keystone/identity/backends/sql.py index d37240eb1..b9912f8dc 100644 --- a/keystone/identity/backends/sql.py +++ b/keystone/identity/backends/sql.py @@ -74,6 +74,7 @@ class Identity(identity.IdentityDriverV8): # NOTE(henry-nash): Override the __init__() method so as to take a # config parameter to enable sql to be used as a domain-specific driver. def __init__(self, conf=None): + self.conf = conf super(Identity, self).__init__() def default_assignment_driver(self): diff --git a/keystone/identity/core.py b/keystone/identity/core.py index 061b82e12..395ab99e3 100644 --- a/keystone/identity/core.py +++ b/keystone/identity/core.py @@ -1159,8 +1159,15 @@ class Manager(manager.Manager): class IdentityDriverV8(object): """Interface description for an Identity driver.""" + def _get_conf(self): + try: + return self.conf or CONF + except AttributeError: + return CONF + def _get_list_limit(self): - return CONF.identity.list_limit or CONF.list_limit + conf = self._get_conf() + return conf.identity.list_limit or conf.list_limit def is_domain_aware(self): """Indicates if Driver supports domains.""" |