From e7ee4a3e5e0b740f82d662d94c68e1f67bb13671 Mon Sep 17 00:00:00 2001 From: bernat Date: Thu, 1 Dec 2005 19:28:39 +0100 Subject: [PATCH] Selection aleatoire de l'UID (plus rapide, evite de trop reutiliser les UID qui ont exist). L'UID est pris entre 1001 et 9999 alors qu'il peut tre pris entre 500 et 32000 et quelques. Correction d'un bug sur le choix de l'IP (boucle sans fin). darcs-hash:20051201182839-d1718-136ed32dc7cdcd4388783f4cb1fbb7389c9e3b69.gz --- gestion/ldap_crans.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 34502833..ef352cde 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -1737,10 +1737,18 @@ class adherent(base_proprietaire): if uidNumber: if self.exist('(uidNumber=%s)' % uidNumber): raise ValueError(u'uidNumber pris') - else: - uidNumber = 1000 - while self.exist('(uidNumber=%s)' % uidNumber): - uidNumber += 1 + else: + pool_uid = range(1001,9999) + random.shuffle(pool_uid) + while len(pool_uid) > 0: + uidNumber = pool_uid.pop() # On choisit une IP + if not self.exist('(uidNumber=%s)'): + # On a trouvé un uid libre + pool_uid.append(uidNumber) + break + if not len(pool_uid): + raise ValueError(u'Plus d\'uid disponibles !') + try: self.lock('uidNumber',str(uidNumber)) except: @@ -2224,15 +2232,15 @@ class machine(base_classes_crans): pool_ip.append(ip) # On va prendre choisir une IP au hasard dans le pool des IP dispo - ip = '' random.shuffle(pool_ip) while len(pool_ip) > 0: ip = pool_ip.pop() # On choisit une IP if not self.exist('ipHostNumber=%s' % ip): # On a trouvé la première ip libre + pool_ip.append(ip) break - if ip =='': + if not len(pool_ip): raise RuntimeError(u'Plus d\'IP libres dans %s.' % string.join(net,' et ') ) else: