使用python递归删除LDAP子树

Joc*_*nde 3 python recursion ldap python-ldap

使用python-ldap,我想删除我的 LDAP 树的整个子树。

我想出了:

def ldap_recursive_delete_s(con, base_dn):
    search = con.search_s(base_dn, ldap.SCOPE_SUBTREE)
    delete_list = [dn for dn, _ in search]
    delete_list.reverse()

    for dn in delete_list:
        con.delete_s(dn)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有像ldaprmCLI 工具那样的“递归”选项。

Ult*_*nct 5

对于那些以后可能会偶然发现这个问题的人,这是我为自己写的一篇快速而肮脏的文章(基本上是@navendu 所说的):

def recursive_delete(conn, base_dn):
    search = conn.search_s(base_dn, ldap.SCOPE_ONELEVEL)

    for dn, _ in search:
        recursive_delete(conn, dn)

    print "Deleting: ", base_dn
    conn.delete_s(base_dn)
Run Code Online (Sandbox Code Playgroud)