[Python] twisted, ldaptor, etc

Manlio Perillo manlio_perillo a libero.it
Gio 4 Mar 2010 11:48:15 CET


Marco Mariani ha scritto:
> ciao!
> 
> Premetto che non ho avuto bisogno di twisted fino ad oggi, forse non ho
> letto a sufficienza la documentazione.
> 
> Vorrei sostituire una dipedenza da python-ldap con twisted+ldaptor, per
> restare in pure-python
> 
> Ldaptor e' ancora "vivo", giusto?
> 

Non lo so.
Ma non ci sono altri package in puro python?

> Lo userei solamente per search e bind, nell'autenticazione degli utenti.
> Dovrei quindi eseguire una chiamata a LDAP, ma una volta ottenuta la
> deferred con
> 
> connector = ldapconnector.LDAPClientCreator(reactor, ldapclient.LDAPClient)
> d = connector.connectAnonymously(dn, {dn: (hostname, 10389)})
> 
> come faccio ad attendere il risultato?
> 

Non puoi integrare Twisted all'interno di un altra applicazione normale,
a meno di fare cose orribili (e inefficienti).

> Usavo le deferred con MochiKit e mi e' chiaro il funzionamento, ma in
> questo caso sono dentro a un IdentityProvider di TurboGears e temo che
> l'unico modo sia simulare un'operazione sincrona.
> 

Twisted per funzionare ha bisogno che si sia un reactor attivo.
Ovviamente non puoi attivare il reactor dentro la tua applicazione web.

Le soluzioni sono:

1) Avviare il reactor, esequire il codice, arrestare il reactor.

   Ma questo è inefficiente.
2) Avviare il reactor in un thread separato, e mandargli le varie
   richieste via una Queue.

   Ma dubito funzioni e vai in cerca di guai.



Ciao  Manlio


Maggiori informazioni sulla lista Python