[python-ldap] Capture Results

Michael Ströder michael at stroeder.com
Mon Nov 21 21:41:11 CET 2011


Tom Tucker wrote:
> 
> How do I display the results from my last add, change or delete? 

What result do you expect? The write operations usually do not return a
meaningful result except you used a special LDAPv3 extended control before.

> I am missing
> something using the "result" method.  
> Thank you in advance.
> 
>         l = ldap.initialize("ldap://localhost:389/")
>         dn = "uid=%s,ou=people,dc=autotrader,dc=com" % (modifier)
>         l.simple_bind_s( dn, modifier_passwd)
>         dn="uid=%s,ou=People,dc=autotrader,dc=com" % (user_to_be_modified)
> 
>         mod_attrs = [ (ldap.MOD_REPLACE, attr, value)]
>         execute_results = l.modify_s(dn, mod_attrs)
>         result_type, result_data = l.result(execute_results, 0)

You should make yourself more familiar with the difference of asynchronous
call modify() and synchronous call modify_s().

See http://www.python-ldap.org/doc/html/ldap.html#ldap.LDAPObject.modify

Also in general the first note here:

http://www.python-ldap.org/doc/html/ldap.html#sending-ldap-requests

So when using

execute_results = l.modify_s(dn, mod_attrs)

the var execute_results contains the result (which is None) whereas

execute_results = l.modify(dn, mod_attrs)

the var execute_results contains the message ID to be used when calling
l.result() afterwards as you did.

Ciao, Michael.


More information about the python-ldap mailing list