diff --git a/gestion/tools/locate-mac.py b/gestion/tools/locate-mac.py index 21b550f2..5490ab14 100755 --- a/gestion/tools/locate-mac.py +++ b/gestion/tools/locate-mac.py @@ -9,9 +9,10 @@ from time import sleep from os import system import threading -mac = ":".join([i.zfill(2) for i in sys.argv[1].split(":")]).lower() - -# on interroge les switchs +# mise en forme d'une adresse mac +def format_mac(unformated_mac): + return ":".join([i.zfill(2) for i in unformated_mac.split(":")]).lower() + # classe d'interrogation des switchs class interroge_switch (threading.Thread) : @@ -27,12 +28,17 @@ class interroge_switch (threading.Thread) : if prise != None : print "%-10s => prise %-2s : %s" % (self.switch.encode('iso-8859-15').replace('.adm.crans.org',''), str(prise), sw.nom(None, prise)) -# on onterroge trois fois car il donne pas toujours les clients -for switch in ['backbone'] + all_switchs(): - interroge_switch(switch, mac) +# interrogation des switchs en parallele +def print_trace(mac): + + for switch in ['backbone'] + all_switchs(): + interroge_switch(switch, mac) -while len(threading.enumerate()) > 1 : - sleep(1) + while len(threading.enumerate()) > 1 : + sleep(1) -print -system('/usr/scripts/gestion/whos.py -a mac=%s' % mac) +# on interroge les switchs et on fait un whos sur la mac +if __name__ == '__main__': + mac = format_mac(sys.argv[1]) + print_trace(mac) + print system('/usr/scripts/gestion/whos.py -a mac=%s' % mac)