@@ -213,6 +213,7 @@ def _find_commands(self):
213
213
self .PATH_LDAPADD = self ._find_command ("ldapadd" )
214
214
self .PATH_LDAPDELETE = self ._find_command ("ldapdelete" )
215
215
self .PATH_LDAPMODIFY = self ._find_command ("ldapmodify" )
216
+ self .PATH_LDAPSEARCH = self ._find_command ("ldapsearch" )
216
217
self .PATH_LDAPWHOAMI = self ._find_command ("ldapwhoami" )
217
218
self .PATH_SLAPADD = self ._find_command ("slapadd" )
218
219
self .PATH_SLAPCAT = self ._find_command ("slapcat" )
@@ -558,6 +559,27 @@ def ldapdelete(self, dn, recursive=False, extra_args=None, expected=0):
558
559
self .PATH_LDAPDELETE , extra_args = extra_args , expected = expected
559
560
)
560
561
562
+ def ldapsearch (self , filter , searchbase = None , extra_args = None , expected = 0 ):
563
+ """
564
+ Runs search on this slapd instance
565
+
566
+ :param filter: The search filter.
567
+ :param base: The starting point for the search.
568
+ :param extra_args: Extra argument to pass to *ldapdelete*.
569
+ :param expected: Expected return code. Defaults to `0`.
570
+ :type expected: An integer or a list of integers
571
+
572
+ :return: A :class:`subprocess.CompletedProcess` with the *ldapdelete* execution data.
573
+ """
574
+ if extra_args is None :
575
+ extra_args = []
576
+ if searchbase :
577
+ extra_args .extend (["-b" , searchbase ])
578
+ extra_args .append (filter )
579
+ return self ._cli_popen (
580
+ self .PATH_LDAPSEARCH , extra_args = extra_args , expected = expected
581
+ )
582
+
561
583
def slapadd (self , ldif , extra_args = None , expected = 0 ):
562
584
"""
563
585
Runs slapadd on this slapd instance, passing it the ldif content
0 commit comments