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
This commit is contained in:
parent
133d5bc92d
commit
e7ee4a3e5e
1 changed files with 14 additions and 6 deletions
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue