diff --git a/gestion/tools/who2b.py b/gestion/tools/who2b.py index dc20a439..196886c1 100644 --- a/gestion/tools/who2b.py +++ b/gestion/tools/who2b.py @@ -1,4 +1,5 @@ #! /usr/bin/env python +# -*- coding: utf-8 -*- '''Ce script permet de savoir s'il y a du monde au 2B.''' @@ -16,35 +17,50 @@ def liste_2b(): sw = hpswitch('backbone') db = crans_ldap() - try: - macs = sw.show_prise_mac(87) - except ConversationError: - cprint("Impossible de communiquer avec le backbone !", 'rouge') - return + + ## Rappel (faut bien le mettre quelque part ...) : + # Quand ça marche pas, c'est sûrement quelque chose parmi : + # -snmpwalk n'est pas installé (paquet Debian snmp) + # -les MIBs ne sont pas installés (/etc/snmp/mibs/hp) + # -snmpwalk ne sait pas qu'il faut aller les chercher dans ce dossier + # (/etc/snmp/snmp.conf) + macs = sw.show_prise_mac(87) + + # Machines branchée sur la prise + # (on voit aussi les machines branchées via une borne WiFi du 2B) + machines = [] if macs: - machines = [] machines_crans = [] for mac in macs: fm = db.search("mac=%s" % mac) if len(fm['machine']) != 0: m = fm['machine'][0] + # Machine personnelle ou machine Cr@ns ? if len(fm['borneWifi']) == 0 and len(fm['machineCrans']) == 0: - if len(m.proprietaire().droits()) != 0 or len(fm['machineFixe']) != 0: - # On filtre en Wifi sur ceux qui ont des droits - machines.append(m) + try: + if len(m.proprietaire().droits()) != 0 or len(fm['machineFixe']) != 0: + # On filtre en Wifi sur ceux qui ont des droits + machines.append(m) + except: + pass else: machines_crans.append(m) else: cprint("Machine inconnue: %s" % mac, 'rouge') + # Affichage des machines cprint('---=== Machines du Crans ===---', 'bleu') - aff(machines_crans) + aff(machines_crans, mtech=True) cprint('---=== Autres machines ===---', 'bleu') - aff(machines) + aff(machines, mtech=True) ttyfound = 1 + + # Utilisateurs connectés sur vo sur place if gethostname() == 'vo': - cprint('---=== Who sur vo ===---', 'bleu') - ttyfound = system("/usr/bin/who | /bin/grep -E 'tty0| :0 | \(:0'") + cprint('---=== W(ho) sur vo ===---', 'bleu') + ttyfound = system("/usr/bin/w -s | /bin/egrep 'tty0| :0 | \(:0'") print '' + + # Conclusion if len(machines) != 0 or ttyfound == 0: cprint("---=== Il y a du monde au 2B ! ===---", 'vert') else: