From f0357b260bb7a0f99ec6b3fb9bd13fb9966e7cb8 Mon Sep 17 00:00:00 2001 From: Michel Blockelet Date: Fri, 14 Dec 2007 12:14:37 +0100 Subject: [PATCH] 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 --- gestion/tools/who2b.py | 54 +++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/gestion/tools/who2b.py b/gestion/tools/who2b.py index f4aeb91d..0ddb802a 100755 --- a/gestion/tools/who2b.py +++ b/gestion/tools/who2b.py @@ -1,28 +1,54 @@ #! /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') 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.''' -def liste_machines_fixe(): sw = hpswitch('backbone') db = crans_ldap() try: macs = sw.show_prise_mac(87) except ConversationError: - print coul("Impossible de communiquer avec le switch !") - machines = [] - for mac in macs: - m = db.search("mac=%s" % mac)['machine'] - if m: - machines.append(m[0]) - else: - print "Machine inconnue: %s" % mac - aff(machines) - - -liste_machines_fixe() + cprint("Impossible de communiquer avec le backbone !", 'rouge') + return + if macs: + machines = [] + machines_crans = [] + for mac in macs: + fm = db.search("mac=%s" % mac) + m = fm['machine'] + 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]) + else: + 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) + 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_2b()