From e6ed5ddebf5550e650714751af2fbd1a7f2ed676 Mon Sep 17 00:00:00 2001 From: glondu Date: Sat, 6 May 2006 07:29:07 +0200 Subject: [PATCH] Factorisation ultime des connexions a la base LDAP. Renommage crans_ldap -> CransLdap. darcs-hash:20060506052907-68412-7cbd4a4eece00def70ce788d50ea53399808e033.gz --- gestion/ldap_crans.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index b910b20c..243f4b5d 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -52,7 +52,7 @@ else: sys.stdout.write(coul('Warning : impossible de lire le fichier de secret !\n', 'jaune')) sys.exit(1) - # uri pour les instances de crans_ldap faisant de la lecture seule + # uri pour les instances de CransLdap faisant de la lecture seule if os.path.exists('/var/run/ldapi'): ro_uri = 'ldapi://%2fvar%2frun%2fldapi/' else: @@ -224,7 +224,7 @@ class Service: ','.join(self.args), dates)).replace(" et maintenant", "") -class crans_ldap: +class CransLdap: """ Classe de connexion à la base LDAP du crans. """ @@ -818,7 +818,7 @@ class crans_ldap: ############################################################################# -class BaseClasseCrans(crans_ldap): +class BaseClasseCrans(CransLdap): """ Méthodes de base des classes machines, et BaseProprietaire """ def __eq__(self, autre): @@ -2934,7 +2934,7 @@ class BorneWifi(Machine): return new -class _FakeProprio(crans_ldap): +class _FakeProprio(CransLdap): """ Définitions de base d'un propriétaire virtuel """ idn = '' def __init__(self, conn=None): @@ -2970,6 +2970,18 @@ class AssociationCrans(_FakeProprio): def chbre(self): return u"CRA" + +db = None +def crans_ldap(readonly=False): + """ Renvoie un objet CransLdap """ + global db + if readonly: + return CransLdap(readonly) + if db == None: + db = CransLdap() + return db + + if __name__ == '__main__': import sys @@ -2984,18 +2996,18 @@ if __name__ == '__main__': elif '--lock' in sys.argv: print "Liste des locks" - db = crans_ldap() + db = CransLdap() for lock in db.list_locks(): print "%s\t %s" % (lock[1]["lockid"][0], lock[0].split(',')[0]) elif '--purgelock' in sys.argv: print "Suppression de tous les locks" - db = crans_ldap() + db = CransLdap() db.remove_lock('*') elif '--menage' in sys.argv: print "Ménage des machines des adhérents partis..." - db = crans_ldap() + db = CransLdap() machines = db.search('paiement!=%s&host=*.crans.org' % ann_scol , 'w')['machine'] print "Destruction de %i machines" % len(machines) for m in machines: