Nettement plus rapide !

darcs-hash:20070521174313-c992d-0208c36726b291fe3ab1cc85526bbd4b61c82368.gz
This commit is contained in:
bos 2007-05-21 19:43:13 +02:00
parent 5a7d58f5a7
commit 961663c979

View file

@ -8,7 +8,7 @@ Copyright (C) Alexandre Bos, largement pompe sur ldap_crans.py
Licence : GPLv2 Licence : GPLv2
""" """
from ldap_crans import crans_ldap
from config import NETs from config import NETs
from iptools import AddrInNet from iptools import AddrInNet
@ -17,9 +17,19 @@ noms_fichiers = {
'ip_wifi-adh' : '/usr/scripts/var/numeros_disponibles/ip_wifi-adh' 'ip_wifi-adh' : '/usr/scripts/var/numeros_disponibles/ip_wifi-adh'
} }
db = crans_ldap()
def _update_ip(plage, fichier):
def lister_ip_utilisees():
liste = []
from ldap_crans import crans_ldap
db = crans_ldap()
r = db.search('mid=*')
machines = r['machineFixe'] + r['machineWifi'] + r['machineCrans']
for m in machines:
liste.append(m.ip())
return liste
def _update_ip(plage, fichier, occupees):
net = NETs[plage] net = NETs[plage]
pool_ip = [] # Pool d'IP à tester pool_ip = [] # Pool d'IP à tester
for ne in net: for ne in net:
@ -44,20 +54,20 @@ def _update_ip(plage, fichier):
resultat = '' resultat = ''
for ip in pool_ip: for ip in pool_ip:
if not db.exist('ipHostNumber=%s' % ip): if ip not in occupees :
resultat += '%s\n' % ip resultat += '%s\n' % ip
print '%s\n' % ip
f = open(noms_fichiers[fichier],'w') f = open(noms_fichiers[fichier],'w')
f.write(resultat) f.write(resultat)
f.close f.close
def update_ip_fixe(): def update_ip_fixe(occupees):
_update_ip('fil', 'ip_fil') _update_ip('fil', 'ip_fil', occupees)
def update_ip_wifi_adh(): def update_ip_wifi_adh(occupees):
_update_ip('wifi-adh','ip_wifi-adh') _update_ip('wifi-adh','ip_wifi-adh', occupees)
if __name__ == "__main__": if __name__ == "__main__":
update_ip_fixe() occupees = lister_ip_utilisees()
update_ip_wifi_adh() update_ip_fixe(occupees)
update_ip_wifi_adh(occupees)