scripts/gestion/tools/who2b.py
Jeremie Dimino d91a411300 egon -> vo
darcs-hash:20090426140038-af139-cd4826771b1430c4d3c3df313f1a09a5b6eb7c45.gz
2009-04-26 16:00:38 +02:00

54 lines
1.8 KiB
Python

#! /usr/bin/env python
'''Ce script permet de savoir s'il y a du monde au 2B.'''
import sys
sys.path.append('/usr/scripts/gestion')
from ldap_crans import crans_ldap
from hptools import hpswitch, ConversationError
from affich_tools import coul, cprint
from whos import aff
from socket import gethostname
from os import system
def liste_2b():
'''Cette fonction permet de savoir s'il y a du monde au 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
if macs:
machines = []
machines_crans = []
for mac in macs:
fm = db.search("mac=%s" % mac)
if len(fm['machine']) != 0:
m = fm['machine'][0]
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)
else:
machines_crans.append(m)
else:
cprint("Machine inconnue: %s" % mac, 'rouge')
cprint('---=== Machines du Crans ===---', 'bleu')
aff(machines_crans)
cprint('---=== Autres machines ===---', 'bleu')
aff(machines)
ttyfound = 1
if gethostname() == 'vo':
cprint('---=== Who sur vo ===---', 'bleu')
ttyfound = system("/usr/bin/who | /bin/grep -E 'tty0| :0 | \(:0'")
print ''
if len(machines) != 0 or ttyfound == 0:
cprint("---=== Il y a du monde au 2B ! ===---", 'vert')
else:
cprint("---=== Il semble n'y avoir personne au 2B ... ===---", 'rouge')
if __name__ == '__main__':
liste_2b()