Introdurre oggetti LDAP #2
Loading…
Reference in New Issue
There is no content yet.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
Proviamo ad aggiungere degli oggetti che rappresentino la struttura di relazioni di un LDAP come potrebbe interessarci.
Immagino ad esempio
OrganizationalUnit
Group
Service
User
Uno
User
può essere parte di uno o piùGroup
o può essere unService
.L'idea era quella di avere una interfaccia semplificata a LDAP, astraendo (buttando) via tutto quello che non dovrebbe interessare direttamente.
Per questo imho permetterei di operare su due entità semplici: utenti e gruppi.
Hai ragione sull'evitare di complicare. Ero già partito in quarta a fare tutte classi, ma effettivamente il modello tipo UNIX, utenti e gruppi, è più che sufficiente.
Adesso mi metto a fare i due, nella massima semplicità.
Il dubbio che ho è che dato che embeddiamo tutto in un'app
async
, dovremmo esporre dei metodi awaitable. Adesso vedo come fare. Hai idee?Ho trovato questa: https://github.com/noirello/bonsai
Sembra semplice da usare ed espone già una interfaccia async. La studio un po'.
Valuta tu se il gioco vale la candela. Io sono arrivato ad odiare l'event loop di python, e a quanto pare non solo il solo.
Piuttosto visto che il codice è ancora poco, migrerei all'eroe che mai delude (Flask).
E' che mi sono fissato con sto
async/await
e mi pareva un'ottima occasione di capirlo un po' meglio. Da quello che ho capito è complicato fare compromessi: non è corretto/è difficile integrare codice scritto per workflow sincroni con codice asincrono.Infatti per questo stavo guardando una libreria ldap che supportasse già delle API
async
.Ho scritto un modellino. Sta in
src/phi/ldap/async_model.py
. Vorrei scrivere un wrapper aLDAPClient
che offre quelbonsai
che sia simile al client che hai già fatto.Guarda i test in
test/test_async_model.py
e dimmi che ne pensi. Per adesso l'unica cosa furba che fa è generare ildn
a partire dall'ordine ereditario delle classi.Appena ho un po' di tempo documento meglio.
Do un'occhiata appena posso.
Questa issue è risolta nel branch
develop