summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Bobrov <bbobrov@mirantis.com>2015-12-09 20:45:50 +0300
committerSteve Martinelli <stevemar@ca.ibm.com>2016-03-08 07:57:23 +0000
commitcf9ebb4d0fc122f9a06188ab06b6523959ec654f (patch)
tree41fef0ec68073acc6908f831880d6076ae509dd1
parentc665080d4a700b6d92f29c40621d83bd7365de34 (diff)
downloadkeystone-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.py8
-rw-r--r--keystone/identity/backends/sql.py1
-rw-r--r--keystone/identity/core.py9
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."""