Introdurre oggetti LDAP #2

Closed
opened 2019-04-15 18:54:38 +02:00 by blallo · 7 comments

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 un Service.

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 un `Service`.
blallo added this to the Modello a oggetti per LDAP milestone 2019-04-15 18:54:38 +02:00
blallo self-assigned this 2019-04-15 18:54:38 +02:00

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.

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.
Poster
Owner

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?

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?
Poster
Owner

Ho trovato questa: https://github.com/noirello/bonsai

Sembra semplice da usare ed espone già una interfaccia async. La studio un po'.

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).

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](http://lucumr.pocoo.org/2016/10/30/i-dont-understand-asyncio/). Piuttosto visto che il codice è ancora poco, migrerei all'eroe che mai delude (Flask).
Poster
Owner

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 a LDAPClient che offre quel bonsai 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 il dn a partire dall'ordine ereditario delle classi.

Appena ho un po' di tempo documento meglio.

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 a `LDAPClient` che offre quel `bonsai` 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 il `dn` a partire dall'ordine ereditario delle classi. Appena ho un po' di tempo documento meglio.

Do un'occhiata appena posso.

Do un'occhiata appena posso.
Poster
Owner

Questa issue è risolta nel branch develop

Questa issue è risolta nel branch `develop`
Sign in to join this conversation.
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: unit/phi#2
There is no content yet.