[PR #6648/88014635 backport][stable-7] plugins/modules/ldap_search: Add support for multipage searches (#6697)

plugins/modules/ldap_search: Add support for multipage searches (#6648)

* Add more integration tests for ldap_search

* Add new page_size option to ldap_search

* Add changelog fragment

* Apply suggestions from code review

Co-authored-by: Felix Fontein <felix@fontein.de>

* Simplify if statement to reduce negatives

* Apply suggestions from code review

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 8801463575)

Co-authored-by: Gnonthgol <gnonthgol+github@gmail.com>
This commit is contained in:
patchback[bot] 2023-06-15 08:42:35 +02:00 committed by GitHub
parent adca0d5d75
commit 7dcbb1ade4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 118 additions and 15 deletions

View file

@ -23,3 +23,17 @@
- output is not failed
- output.results | length == 1
- output.results.0.displayName == "LDAP Test"
- name: Test simple search for a user with no results
ldap_search:
dn: "ou=users,dc=example,dc=com"
scope: "onelevel"
filter: "(uid=nonexistent)"
ignore_errors: true
register: output
- name: assert that the output is empty
assert:
that:
- output is not failed
- output.results | length == 0

View file

@ -0,0 +1,24 @@
---
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
- debug:
msg: Running tests/pages.yml
####################################################################
## Search ##########################################################
####################################################################
- name: Test paged search for all users
ldap_search:
dn: "ou=users,dc=example,dc=com"
scope: "onelevel"
page_size: 1
ignore_errors: true
register: output
- name: assert that the right number of results are returned
assert:
that:
- output is not failed
- output.results | length == 2

View file

@ -0,0 +1,25 @@
---
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
- debug:
msg: Running tests/schema.yml
####################################################################
## Search ##########################################################
####################################################################
- name: Test for ldap schema output
ldap_search:
dn: "ou=users,dc=example,dc=com"
scope: "onelevel"
schema: true
ignore_errors: true
register: output
- name: Assert that the schema output is correct
assert:
that:
- output is not failed
- output.results | length >= 1
- "{{ 'displayName' in output.results.0.attrs }}"

View file

@ -20,3 +20,21 @@ gecos: LDAP Test
displayName: LDAP Test
mail: ldap.test@example.com
sn: Test
dn: uid=second,ou=users,dc=example,dc=com
uid: second
uidNumber: 1112
gidNUmber: 102
objectClass: top
objectClass: posixAccount
objectClass: shadowAccount
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
loginShell: /bin/sh
homeDirectory: /home/second
cn: Second Test
gecos: Second Test
displayName: Second Test
mail: second.test@example.com
sn: Test