summaryrefslogtreecommitdiffstats
path: root/ipa-python
diff options
context:
space:
mode:
authorrcritten@redhat.com <rcritten@redhat.com>2007-08-13 16:41:38 -0400
committerrcritten@redhat.com <rcritten@redhat.com>2007-08-13 16:41:38 -0400
commitcfaa28150b6f0599b61acbb9b033327de9fd45ee (patch)
tree90af9a3a27037a5be8fc940b88a42b0e428a1ebc /ipa-python
parent794ef65abc79e99d596cacc195dfd2a5956a9a37 (diff)
downloadfreeipa.git-cfaa28150b6f0599b61acbb9b033327de9fd45ee.tar.gz
freeipa.git-cfaa28150b6f0599b61acbb9b033327de9fd45ee.tar.xz
freeipa.git-cfaa28150b6f0599b61acbb9b033327de9fd45ee.zip
Basic LDAP connection pooling
Implement user search
Diffstat (limited to 'ipa-python')
-rw-r--r--ipa-python/ipaclient.py11
-rw-r--r--ipa-python/rpcclient.py17
2 files changed, 28 insertions, 0 deletions
diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py
index c75b5bc9..2c24e77d 100644
--- a/ipa-python/ipaclient.py
+++ b/ipa-python/ipaclient.py
@@ -85,3 +85,14 @@ class IPAClient:
def get_add_schema(self):
result = self.transport.get_add_schema()
return result
+
+ def find_users(self, criteria, sattrs=None):
+ result = self.transport.find_users(criteria, sattrs)
+
+ users = []
+ for (attrs) in result:
+ if attrs is not None:
+ users.append(user.User(attrs))
+
+ return users
+
diff --git a/ipa-python/rpcclient.py b/ipa-python/rpcclient.py
index d4e645e1..243b5485 100644
--- a/ipa-python/rpcclient.py
+++ b/ipa-python/rpcclient.py
@@ -118,3 +118,20 @@ class RPCClient:
raise xmlrpclib.Fault(value, msg)
return result
+
+ def find_users (self, criteria, sattrs=None):
+ """Return a list containing a User object for each user that matches
+ the criteria."""
+
+ server = self.setup_server()
+ try:
+ if sattrs is not None:
+ result = server.find_users(criteria, sattrs)
+ else:
+ result = server.find_users(criteria)
+ except xmlrpclib.Fault, fault:
+ raise xmlrpclib.Fault(fault.faultCode, fault.faultString)
+ except socket.error, (value, msg):
+ raise xmlrpclib.Fault(value, msg)
+
+ return result