No description
Find a file
Valentin Samir 9aa0de6539 Travaux sur les locks, ajout de context manager pour les cransLdapObject
D'une façon général, on s'assure que tous les locks concernant un cransLdapObject
sont bien mis avec l'identifiant de lock cransLdapObject.lockId.
Avant d'entrer dans le context manager du cransLdapObject, on fait bien attention
d'intercepter les exceptions pouvant être levée pour libérer les locks potentiellement
déjà posés avant de propager l'exception.

Si on essayer d'appeler une methode d'enregistrement (.save() .delete() .create()) sans
utiliser un context manager, on affiche un warning sur stderr.

À terme ça serait bien de n'utiliser que des context manager pour être sûr qu'on ne
laisse pas de lock traîner dans la base de donnée.

Il faut bien sûr faire attention de bien ajouter les lock avec l'identifiant cransLdapObject.lockId
puisqu'on se base là dessus pour les libérer.

Si on a utiliser une context manager, en en sortant, on rend le cransLdapObject read only
(de façon douce en modifiant le cransLdapObject.mode et de façon force en changeant les methodes
save create delete pour lever l'exception EnvironmentError("Hors du context, impossible de faire des écritures"))
2014-02-24 14:48:03 +01:00
doc [doc] Copyright 2013-05-14 15:35:46 +02:00
printing hide ipv6 si cachée 2014-02-23 02:42:57 +01:00
tools/b64decode [tools/b62decode] Script "crade" pour rendre human-readable un ldif avec du base64 dedans. 2013-03-22 15:49:16 +01:00
.gitignore [.gitignore] on ignore juste la doc compilée 2013-03-07 19:13:07 +01:00
__init__.py Split de lc_ldap.py en lc_ldap.py et objets.py + création du wrapper shortcuts.py 2013-05-16 07:00:47 +02:00
attributs.py attributs: allow macAddress "<automatique>" 2014-02-23 19:25:11 +01:00
attributs_tests.py [attributs_tests] paiement et carte etudiant 2010-10-17 17:26:50 +02:00
cimetiere.py [cimetiere] Le module cimetiere est stateless et ne dépend pas d'une connection ldap 2013-11-18 00:44:48 +01:00
crans_utils.py [crans_utils] process_status sans utiliser subprocess 2014-02-24 14:46:52 +01:00
filter.py [filter/crans_utils] Commentaire au début 2013-04-08 13:06:47 +02:00
filter2.py [filter2, filter3] pyparsing.printables ne prend en compte que de l'ASCII, donc on utilise les char unicode 2014-02-19 19:31:32 +01:00
filter3.py [filter2, filter3] pyparsing.printables ne prend en compte que de l'ASCII, donc on utilise les char unicode 2014-02-19 19:31:32 +01:00
lc_ldap.py Travaux sur les locks, ajout de context manager pour les cransLdapObject 2014-02-24 14:48:03 +01:00
ldap_locks.py [ldap_locks] Affichage du temps restant avant expiration d'un lock si une LockError est levée 2014-02-24 14:47:27 +01:00
objets.py Travaux sur les locks, ajout de context manager pour les cransLdapObject 2014-02-24 14:48:03 +01:00
services.py [services] Appel une seule fois à time.time() lors d'une recherche pour reconfiguration 2014-02-23 00:01:09 +01:00
shortcuts.py shortcuts: connexion locale *en anonyme* 2014-01-16 23:21:17 +01:00
test.py [test] Affichage des objets ne passant pas les tests 2014-02-24 11:45:30 +01:00
TODO [attributs, lc_ldap] Création de clubs 2011-02-27 16:09:09 +01:00
variables.py [ldap_locks] Mise en place des locks. Cf commentaires pour les détails. 2013-05-30 15:22:11 +02:00