diff --git a/gestion/tools/whokfet.py b/gestion/tools/whokfet.py index f19ce15a..4c0a697c 100755 --- a/gestion/tools/whokfet.py +++ b/gestion/tools/whokfet.py @@ -19,41 +19,54 @@ from os import system import xml.dom.minidom def get_wifi_connected_client(host): + u""" Renvoie la liste des clients, pour une borne wifi donnée. + N'est plus vraiment utilisée car les bornes sont de toutes façon + connectées au switch (backbone en fait)""" f = open('/usr/scripts/var/wifi_xml/%s.xml' % host,'r') doc = xml.dom.minidom.parse(f) f.close() return [ mac.firstChild.nodeValue for mac in doc.getElementsByTagName('mac') ] -def liste_kfet(): +def get_state(): sw = hpswitch('backbone.adm.crans.org') db = crans_ldap() + res = {'machines': [], + 'machines_crans': [], + 'unknown': [], + 'ttyfound': 0, + } try: - macs = sw.show_prise_mac(45) #Devine quoi, c'est la prise de la kfet - macs +=get_wifi_connected_client('diomede') - macs +=get_wifi_connected_client('nanom5') + macs = sw.show_prise_mac(21) #Devine quoi, c'est la prise de la kfet except ConversationError: cprint("Impossible de communiquer avec le switch !", 'rouge') return if macs: - machines = [] - machines_crans = [] for mac in macs: fm = db.search("mac=%s" % mac) if fm['machine']: m = fm['machine'][0] if not fm['machineCrans'] and hasattr(m.proprietaire(),'droits') and m.proprietaire().droits(): # On filtre ceux qui ont des droits et qui sont pas des machines crans - machines.append(m) + res['machines'].append(m) else: - cprint("Machine inconnue: %s" % mac, 'rouge') + res['unknown'].append(mac) + return res + +def summary(current): + u"""Réalise un joli aperçu de l'état donné en paramètre.""" + if current['machines']: cprint('---=== Machines des membres actifs ===---', 'bleu') - aff(machines) - ttyfound = 1 - print '' - if len(machines) != 0 or ttyfound == 0: + aff(current['machines']) cprint("---=== Il y a du monde à la Kfet ! ===---", 'vert') else: cprint("---=== Il semble n'y avoir personne à la Kfet ... ===---", 'rouge') + for mac in current['unknown']: + cprint("Machine inconnue: %s" % mac, 'rouge') +def munin(current): + """S'occupe de l'affichage pour munin. TODO: l'écrire.""" + pass + if __name__ == '__main__': - liste_kfet() + state = get_state() + summary(state)