From 5671cda1d324e81329fa76b6a22ec0dfe9a2ffbf Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Fri, 12 Aug 2011 11:09:03 +0400 Subject: Removed ldap names import from fakeldap module. Change-Id: I97d5f63103d3bc4223c603ecd749004fa2062cf3 --- keystone/backends/ldap/fakeldap.py | 53 ++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/keystone/backends/ldap/fakeldap.py b/keystone/backends/ldap/fakeldap.py index d34f817a..559850cd 100644 --- a/keystone/backends/ldap/fakeldap.py +++ b/keystone/backends/ldap/fakeldap.py @@ -27,16 +27,13 @@ import logging import re import shelve -from ldap import (dn, filter, modlist, - SCOPE_BASE, SCOPE_ONELEVEL, SCOPE_SUBTREE, MOD_ADD, MOD_DELETE, - MOD_REPLACE, NO_SUCH_OBJECT, OBJECT_CLASS_VIOLATION, SERVER_DOWN, - NO_SUCH_ATTRIBUTE, ALREADY_EXISTS, INAPPROPRIATE_AUTH, INVALID_CREDENTIALS) +import ldap scope_names = { - SCOPE_BASE: 'SCOPE_BASE', - SCOPE_ONELEVEL: 'SCOPE_ONELEVEL', - SCOPE_SUBTREE: 'SCOPE_SUBTREE', + ldap.SCOPE_BASE: 'SCOPE_BASE', + ldap.SCOPE_ONELEVEL: 'SCOPE_ONELEVEL', + ldap.SCOPE_SUBTREE: 'SCOPE_SUBTREE', } @@ -136,7 +133,7 @@ class FakeLDAP(object): def simple_bind_s(self, dn, password): """This method is ignored, but provided for compatibility.""" if server_fail: - raise SERVER_DOWN + raise ldap.SERVER_DOWN LOG.debug("FakeLDAP bind dn=%s" % (dn,)) if dn == 'cn=Admin' and password == 'password': return @@ -144,34 +141,34 @@ class FakeLDAP(object): attrs = self.db["%s%s" % (self.__prefix, dn)] except KeyError: LOG.error("FakeLDAP bind fail: dn=%s not found" % (dn,)) - raise NO_SUCH_OBJECT + raise ldap.NO_SUCH_OBJECT db_passwd = None try: db_passwd = attrs['userPassword'][0] except (KeyError, IndexError): LOG.error("FakeLDAP bind fail: password for dn=%s not found" % dn) - raise INAPPROPRIATE_AUTH + raise ldap.INAPPROPRIATE_AUTH if db_passwd != password: LOG.error("FakeLDAP bind fail: password for dn=%s does not match" % dn) - raise INVALID_CREDENTIALS + raise ldap.INVALID_CREDENTIALS def unbind_s(self): """This method is ignored, but provided for compatibility.""" if server_fail: - raise SERVER_DOWN + raise ldap.SERVER_DOWN def add_s(self, dn, attrs): """Add an object with the specified attributes at dn.""" if server_fail: - raise SERVER_DOWN + raise ldap.SERVER_DOWN key = "%s%s" % (self.__prefix, dn) LOG.debug("FakeLDAP add item: dn=%s, attrs=%s" % (dn, attrs)) if key in self.db: LOG.error( "FakeLDAP add item failed: dn '%s' is already in store." % dn) - raise ALREADY_EXISTS + raise ldap.ALREADY_EXISTS self.db[key] = dict([(k, v if isinstance(v, list) else [v]) for k, v in attrs]) self.db.sync() @@ -179,7 +176,7 @@ class FakeLDAP(object): def delete_s(self, dn): """Remove the ldap object at specified dn.""" if server_fail: - raise SERVER_DOWN + raise ldap.SERVER_DOWN key = "%s%s" % (self.__prefix, dn) LOG.debug("FakeLDAP delete item: dn=%s" % (dn,)) @@ -187,7 +184,7 @@ class FakeLDAP(object): del self.db[key] except KeyError: LOG.error("FakeLDAP delete item failed: dn '%s' not found." % dn) - raise NO_SUCH_OBJECT + raise ldap.NO_SUCH_OBJECT self.db.sync() def modify_s(self, dn, attrs): @@ -200,7 +197,7 @@ class FakeLDAP(object): """ if server_fail: - raise SERVER_DOWN + raise ldap.SERVER_DOWN key = "%s%s" % (self.__prefix, dn) LOG.debug("FakeLDAP modify item: dn=%s attrs=%s" % (dn, attrs)) @@ -208,23 +205,23 @@ class FakeLDAP(object): entry = self.db[key] except KeyError: LOG.error("FakeLDAP modify item failed: dn '%s' not found." % dn) - raise NO_SUCH_OBJECT + raise ldap.NO_SUCH_OBJECT for cmd, k, v in attrs: values = entry.setdefault(k, []) - if cmd == MOD_ADD: + if cmd == ldap.MOD_ADD: if isinstance(v, list): values += v else: values.append(v) - elif cmd == MOD_REPLACE: + elif cmd == ldap.MOD_REPLACE: values[:] = v if isinstance(v, list) else [v] - elif cmd == MOD_DELETE: + elif cmd == ldap.MOD_DELETE: if v is None: if len(values) == 0: LOG.error("FakeLDAP modify item failed: " "item has no attribute '%s' to delete" % k) - raise NO_SUCH_ATTRIBUTE + raise ldap.NO_SUCH_ATTRIBUTE values[:] = [] else: if not isinstance(v, list): @@ -236,7 +233,7 @@ class FakeLDAP(object): LOG.error("FakeLDAP modify item failed: " "item has no attribute '%s' with value '%s'" " to delete" % (k, val)) - raise NO_SUCH_ATTRIBUTE + raise ldap.NO_SUCH_ATTRIBUTE else: LOG.error("FakeLDAP modify item failed: unknown command %s" % (cmd,)) @@ -256,22 +253,22 @@ class FakeLDAP(object): """ if server_fail: - raise SERVER_DOWN + raise ldap.SERVER_DOWN LOG.debug("FakeLDAP search at dn=%s scope=%s query='%s'" % (dn, scope_names.get(scope, scope), query)) - if scope == SCOPE_BASE: + if scope == ldap.SCOPE_BASE: try: item_dict = self.db["%s%s" % (self.__prefix, dn)] except KeyError: LOG.debug("FakeLDAP search fail: dn not found for SCOPE_BASE") - raise NO_SUCH_OBJECT + raise ldap.NO_SUCH_OBJECT results = [(dn, item_dict)] - elif scope == SCOPE_SUBTREE: + elif scope == ldap.SCOPE_SUBTREE: results = [(k[len(self.__prefix):], v) for k, v in self.db.iteritems() if re.match("%s.*,%s" % (self.__prefix, dn), k)] - elif scope == SCOPE_ONELEVEL: + elif scope == ldap.SCOPE_ONELEVEL: results = [(k[len(self.__prefix):], v) for k, v in self.db.iteritems() if re.match("%s\w+=[^,]+,%s" % (self.__prefix, dn), k)] -- cgit