[tools/who2b.py] Petites ameliorations

darcs-hash:20091202223932-ddb99-a4c9e53b8a703b01b860052a05e95360b8c7d59e.gz
This commit is contained in:
Michel Blockelet 2009-12-02 23:39:32 +01:00
parent 8e0eafdeb2
commit 8a27a92b4f

View file

@ -1,4 +1,5 @@
#! /usr/bin/env python #! /usr/bin/env python
# -*- coding: utf-8 -*-
'''Ce script permet de savoir s'il y a du monde au 2B.''' '''Ce script permet de savoir s'il y a du monde au 2B.'''
@ -16,35 +17,50 @@ def liste_2b():
sw = hpswitch('backbone') sw = hpswitch('backbone')
db = crans_ldap() db = crans_ldap()
try:
macs = sw.show_prise_mac(87) ## Rappel (faut bien le mettre quelque part ...) :
except ConversationError: # Quand ça marche pas, c'est sûrement quelque chose parmi :
cprint("Impossible de communiquer avec le backbone !", 'rouge') # -snmpwalk n'est pas installé (paquet Debian snmp)
return # -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: if macs:
machines = []
machines_crans = [] machines_crans = []
for mac in macs: for mac in macs:
fm = db.search("mac=%s" % mac) fm = db.search("mac=%s" % mac)
if len(fm['machine']) != 0: if len(fm['machine']) != 0:
m = 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(fm['borneWifi']) == 0 and len(fm['machineCrans']) == 0:
if len(m.proprietaire().droits()) != 0 or len(fm['machineFixe']) != 0: try:
# On filtre en Wifi sur ceux qui ont des droits if len(m.proprietaire().droits()) != 0 or len(fm['machineFixe']) != 0:
machines.append(m) # On filtre en Wifi sur ceux qui ont des droits
machines.append(m)
except:
pass
else: else:
machines_crans.append(m) machines_crans.append(m)
else: else:
cprint("Machine inconnue: %s" % mac, 'rouge') cprint("Machine inconnue: %s" % mac, 'rouge')
# Affichage des machines
cprint('---=== Machines du Crans ===---', 'bleu') cprint('---=== Machines du Crans ===---', 'bleu')
aff(machines_crans) aff(machines_crans, mtech=True)
cprint('---=== Autres machines ===---', 'bleu') cprint('---=== Autres machines ===---', 'bleu')
aff(machines) aff(machines, mtech=True)
ttyfound = 1 ttyfound = 1
# Utilisateurs connectés sur vo sur place
if gethostname() == 'vo': if gethostname() == 'vo':
cprint('---=== Who sur vo ===---', 'bleu') cprint('---=== W(ho) sur vo ===---', 'bleu')
ttyfound = system("/usr/bin/who | /bin/grep -E 'tty0| :0 | \(:0'") ttyfound = system("/usr/bin/w -s | /bin/egrep 'tty0| :0 | \(:0'")
print '' print ''
# Conclusion
if len(machines) != 0 or ttyfound == 0: if len(machines) != 0 or ttyfound == 0:
cprint("---=== Il y a du monde au 2B ! ===---", 'vert') cprint("---=== Il y a du monde au 2B ! ===---", 'vert')
else: else: