ldap: Use LDAPClient instead of IPASimpleLDAPObject in LDAPEntry

Reviewed-By: Petr Viktorin <pviktori@redhat.com>
This commit is contained in:
Jan Cholasta
2015-04-16 06:58:31 +00:00
parent 955885d8d9
commit cbb112dd57
2 changed files with 14 additions and 5 deletions
+7 -4
View File
@@ -571,7 +571,7 @@ class LDAPEntry(collections.MutableMapping):
* LDAPEntry(dn, entry) - create a shallow copy of an existing * LDAPEntry(dn, entry) - create a shallow copy of an existing
LDAPEntry with a different DN. LDAPEntry with a different DN.
* LDAPEntry(conn, dn, mapping) - create a new LDAPEntry using the * LDAPEntry(conn, dn, mapping) - create a new LDAPEntry using the
specified IPASimpleLDAPObject and DN and optionally initialize specified LDAPClient and DN and optionally initialize
attributes from the specified mapping object. attributes from the specified mapping object.
Keyword arguments can be used to override values of specific attributes. Keyword arguments can be used to override values of specific attributes.
@@ -582,7 +582,7 @@ class LDAPEntry(collections.MutableMapping):
assert _dn is None assert _dn is None
_dn = _conn _dn = _conn
_conn = _conn._conn _conn = _conn._conn
assert isinstance(_conn, IPASimpleLDAPObject) assert isinstance(_conn, LDAPClient)
if isinstance(_dn, LDAPEntry): if isinstance(_dn, LDAPEntry):
assert _obj is None assert _obj is None
@@ -992,6 +992,9 @@ class LDAPClient(object):
def conn(self): def conn(self):
return self._conn return self._conn
def get_single_value(self, attr):
return self.conn.get_single_value(attr)
def encode(self, val): def encode(self, val):
return self.conn.encode(val) return self.conn.encode(val)
@@ -1023,7 +1026,7 @@ class LDAPClient(object):
continue continue
ipa_entry = LDAPEntry(self.conn, DN(original_dn)) ipa_entry = LDAPEntry(self, DN(original_dn))
for attr, original_values in original_attrs.items(): for attr, original_values in original_attrs.items():
ipa_entry.raw[attr] = original_values ipa_entry.raw[attr] = original_values
@@ -1240,7 +1243,7 @@ class LDAPClient(object):
return DN((primary_key, entry_attrs[primary_key]), parent_dn) return DN((primary_key, entry_attrs[primary_key]), parent_dn)
def make_entry(self, _dn=None, _obj=None, **kwargs): def make_entry(self, _dn=None, _obj=None, **kwargs):
return LDAPEntry(self.conn, _dn, _obj, **kwargs) return LDAPEntry(self, _dn, _obj, **kwargs)
# generating filters for find_entry # generating filters for find_entry
# some examples: # some examples:
+7 -1
View File
@@ -187,7 +187,13 @@ def test_entry_to_dict():
self._schema = FakeSchema() self._schema = FakeSchema()
self._has_schema = True self._has_schema = True
conn = FakeIPASimpleLDAPObject() class FakeLDAPClient(ipaldap.LDAPClient):
def __init__(self):
super(FakeLDAPClient, self).__init__('ldap://test',
force_schema_updates=False)
self._conn = FakeIPASimpleLDAPObject()
conn = FakeLDAPClient()
rights = {'nothing': 'is'} rights = {'nothing': 'is'}
entry = ipaldap.LDAPEntry( entry = ipaldap.LDAPEntry(