diff options
author | Pavel Zuna <pzuna@redhat.com> | 2009-06-15 15:59:20 +0200 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2009-06-15 11:19:04 -0400 |
commit | 2ff4b3906ffbcd89330e40fa7f69f5c668996b72 (patch) | |
tree | 989cf3bf7e078c5a1d686e53a2c9d6ad3b4d2b73 /ipalib/plugins/dns2.py | |
parent | 48e1f47ed130110db953aaf6a765faab438e1305 (diff) | |
download | freeipa-2ff4b3906ffbcd89330e40fa7f69f5c668996b72.tar.gz freeipa-2ff4b3906ffbcd89330e40fa7f69f5c668996b72.tar.xz freeipa-2ff4b3906ffbcd89330e40fa7f69f5c668996b72.zip |
Change plugins2 using find_entries to support incomplete (truncated) search results.
Diffstat (limited to 'ipalib/plugins/dns2.py')
-rw-r--r-- | ipalib/plugins/dns2.py | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/ipalib/plugins/dns2.py b/ipalib/plugins/dns2.py index 8b340879a..17de2d7b2 100644 --- a/ipalib/plugins/dns2.py +++ b/ipalib/plugins/dns2.py @@ -228,9 +228,11 @@ class dns2_delete(crud.Delete): # retrieve all subentries of zone - records try: - entries = ldap.find_entries(None, [''], dn, ldap.SCOPE_ONELEVEL) + (entries, truncated) = ldap.find_entries( + None, [''], dn, ldap.SCOPE_ONELEVEL + ) except errors.NotFound: - entries = tuple() + (entries, truncated) = (tuple(), False) # kill'em all, records first for e in entries: @@ -309,24 +311,30 @@ class dns2_find(crud.Search): # get matching entries try: - entries = ldap.find_entries( + (entries, truncated) = ldap.find_entries( filter, attrs_list, _zone_container_dn, ldap.SCOPE_ONELEVEL ) except errors.NotFound: - entries = tuple() + (entries, truncated) = (tuple(), False) return entries def output_for_cli(self, textui, result, term, **options): + (entries, truncated) = result + textui.print_name(self.name) - for e in result: - (dn, entry_attrs) = e + for (dn, entry_attrs) in entries: textui.print_attribute('dn', dn) textui.print_entry(entry_attrs) textui.print_plain('') textui.print_count( len(result), '%i DNS zone matched.', '%i DNS zones matched.' ) + if truncated: + textui.print_dashed('These results are truncated.', below=False) + textui.print_dashed( + 'Please refine your search and try again.', above=False + ) api.register(dns2_find) @@ -716,9 +724,11 @@ class dns2_find_rr(Command): # get matching entries try: - entries = ldap.find_entries(filter, attrs_list, base_dn) + (entries, truncated) = ldap.find_entries( + filter, attrs_list, base_dn + ) except errors.NotFound: - entries = tuple() + (entries, truncated) = (tuple(), False) # if the user is looking for a certain record type, don't display # entries that do not contain it @@ -730,12 +740,13 @@ class dns2_find_rr(Command): related_entries.append(e) entries = related_entries - return entries + return (entries, truncated) def output_for_cli(self, textui, result, zone, term, **options): + (entries, truncated) = result + textui.print_name(self.name) - for e in result: - (dn, entry_attrs) = e + for (dn, entry_attrs) in entries: textui.print_attribute('dn', dn) textui.print_entry(entry_attrs) textui.print_plain('') @@ -743,6 +754,11 @@ class dns2_find_rr(Command): len(result), '%i DNS resource record matched.', '%i DNS resource records matched.' ) + if truncated: + textui.print_dashed('These results are truncated.', below=False) + textui.print_dashed( + 'Please refine your search and try again.', above=False + ) api.register(dns2_find_rr) |