summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
authorPavel Zuna <pzuna@redhat.com>2010-08-09 19:56:14 -0400
committerRob Crittenden <rcritten@redhat.com>2010-08-12 09:02:39 -0400
commit6136f773a9d70bda9363cb53d6fdb5541a3fa3c0 (patch)
tree7508fda9b72d4c7cb4802b4fddafc55305c9875e /ipalib
parent5797c8167ae651be3705406584ee443a442e8cd9 (diff)
downloadfreeipa-6136f773a9d70bda9363cb53d6fdb5541a3fa3c0.tar.gz
freeipa-6136f773a9d70bda9363cb53d6fdb5541a3fa3c0.tar.xz
freeipa-6136f773a9d70bda9363cb53d6fdb5541a3fa3c0.zip
Add new parameters to LDAPSearch: timelimit and sizelimit.
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/plugins/baseldap.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 52f32e30d..0c9918f53 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -25,7 +25,7 @@ import json
from ipalib import crud, errors, uuid
from ipalib import Method, Object
-from ipalib import Flag, List, Str
+from ipalib import Flag, Int, List, Str
from ipalib.base import NameSpace
from ipalib.cli import to_cli, from_cli
from ipalib import output
@@ -824,6 +824,25 @@ class LDAPSearch(CallbackInterface, crud.Search):
"""
Retrieve all LDAP entries matching the given criteria.
"""
+ takes_options = (
+ Int('timelimit',
+ label=_('Time Limit'),
+ doc=_('Time limit of search in seconds (default 1)'),
+ flags=['no_dispaly'],
+ minvalue=0,
+ default=1,
+ autofill=True,
+ ),
+ Int('sizelimit',
+ label=_('Size Limit'),
+ doc=_('Maximum number of entries returned (default 3000)'),
+ flags=['no_dispaly'],
+ minvalue=0,
+ default=3000,
+ autofill=True,
+ ),
+ )
+
def get_args(self):
for key in self.obj.get_ancestor_primary_keys():
yield key
@@ -887,7 +906,9 @@ class LDAPSearch(CallbackInterface, crud.Search):
try:
(entries, truncated) = ldap.find_entries(
- filter, attrs_list, base_dn, scope=ldap.SCOPE_ONELEVEL
+ filter, attrs_list, base_dn, scope=ldap.SCOPE_ONELEVEL,
+ time_limit=options.get('timelimit', 1),
+ size_limit=options.get('sizelimit', 3000)
)
except errors.ExecutionError, e:
try: