Who2B fonctionnel

Script permettant de savoir s'il y a du monde au 2B.
A executer depuis egon, ca marche mieux ...

darcs-hash:20071214111437-ddb99-aebb4a54adabec2c63bb7a511386fcd262324a1d.gz
This commit is contained in:
Michel Blockelet 2007-12-14 12:14:37 +01:00
parent bdd0b8cf9e
commit f0357b260b

View file

@ -1,28 +1,54 @@
#! /usr/bin/env python #! /usr/bin/env python
import sys '''Ce script permet de savoir s'il y a du monde au 2B.'''
import sys
sys.path.append('/usr/scripts/gestion') sys.path.append('/usr/scripts/gestion')
from ldap_crans import crans_ldap from ldap_crans import crans_ldap
from hptools import hpswitch, ConversationError from hptools import hpswitch, ConversationError
from affich_tools import coul, cprint from affich_tools import coul, cprint
from whos import aff 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.'''
def liste_machines_fixe():
sw = hpswitch('backbone') sw = hpswitch('backbone')
db = crans_ldap() db = crans_ldap()
try: try:
macs = sw.show_prise_mac(87) macs = sw.show_prise_mac(87)
except ConversationError: except ConversationError:
print coul("Impossible de communiquer avec le switch !") cprint("Impossible de communiquer avec le backbone !", 'rouge')
return
if macs:
machines = [] machines = []
machines_crans = []
for mac in macs: for mac in macs:
m = db.search("mac=%s" % mac)['machine'] fm = db.search("mac=%s" % mac)
m = fm['machine']
if m: if m:
if len(fm['borneWifi']) == 0 and len(fm['machineCrans']) == 0:
if len(m[0].proprietaire().droits()) != 0 or len(fm['machineFixe']) != 0:
# On filtre en Wifi sur ceux qui ont des droits
machines.append(m[0]) machines.append(m[0])
else: else:
print "Machine inconnue: %s" % mac machines_crans.append(m[0])
else:
cprint("Machine inconnue: %s" % mac, 'rouge')
cprint('---=== Machines du Crans ===---', 'bleu')
aff(machines_crans)
cprint('---=== Autres machines ===---', 'bleu')
aff(machines) aff(machines)
ttyfound = 1
if gethostname() == 'egon':
cprint('---=== Who sur egon ===---', '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_machines_fixe() liste_2b()