Implement asynchronous search for groups.

Use the filter generation code to search on multiple fields.
This commit is contained in:
Kevin McCarthy committed 2007-09-19 08:42:34 -07:00
1 parent 6b3d1e85da
commit f17071533a
5 files changed
+71 -21

No files matched your search

+5 -4
View File
@@ -161,13 +161,14 @@ class IPAClient:
result = self.transport.add_group(group_dict, group_container)
return result
def find_groups(self, criteria, sattrs=None):
def find_groups(self, criteria, sattrs=None, searchlimit=0):
"""Find groups whose cn matches the criteria. Wildcards are
acceptable. Returns a list of Group objects."""
result = self.transport.find_groups(criteria, sattrs)
result = self.transport.find_groups(criteria, sattrs, searchlimit)
counter = result[0]
groups = []
for attrs in result:
groups = [counter]
for attrs in result[1:]:
if attrs is not None:
groups.append(group.Group(attrs))
+2 -2
View File
@@ -259,7 +259,7 @@ class RPCClient:
except socket.error, (value, msg):
raise xmlrpclib.Fault(value, msg)
def find_groups (self, criteria, sattrs=None):
def find_groups (self, criteria, sattrs=None, searchlimit=0):
"""Return a list containing a Group object for each group that matches
the criteria."""
@@ -268,7 +268,7 @@ class RPCClient:
# None values are not allowed in XML-RPC
if sattrs is None:
sattrs = "__NONE__"
result = server.find_groups(criteria, sattrs)
result = server.find_groups(criteria, sattrs, searchlimit)
except xmlrpclib.Fault, fault:
raise ipaerror.gen_exception(fault.faultCode, fault.faultString)
except socket.error, (value, msg):