scripts/gestion/tools/who2b.py
Daniel STAN 337cffeaad [who2b] Connexion au backbone sur adm
Ignore-this: 2c60966b8691e5130fd63ddb656cade6
Suite à une modif des réglages réseau, vo résout en prio backbone en
backbone.crans.org alors qu'il le faisait en backbone.adm.crans.org.
Je sais pas si c'est normal, discuss...

darcs-hash:20111219190701-28565-e9114f29dbaaa40892060b72729e0d665246c9bf.gz
2011-12-19 20:07:01 +01:00

76 lines
2.6 KiB
Python

#! /usr/bin/env python
# -*- coding: utf-8 -*-
'''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.adm')
db = crans_ldap()
## Rappel (faut bien le mettre quelque part ...) :
# Quand ça marche pas, c'est sûrement quelque chose parmi :
# -snmpwalk n'est pas installé (paquet Debian snmp)
# -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)
#Les machines sédentaires des nounous, bof
try:
macs.remove('00:09:6b:c0:03:42') #omega.crans.org
except:
pass
# Machines branchée sur la prise
# (on voit aussi les machines branchées via une borne WiFi du 2B)
machines = []
if macs:
machines_crans = []
for mac in macs:
fm = db.search("mac=%s" % mac)
if len(fm['machine']) != 0:
m = fm['machine'][0]
# Machine personnelle ou machine Cr@ns ?
if len(fm['borneWifi']) == 0 and len(fm['machineCrans']) == 0:
try:
if len(m.proprietaire().droits()) != 0 or len(fm['machineFixe']) != 0:
# On filtre en Wifi sur ceux qui ont des droits
machines.append(m)
except:
pass
else:
machines_crans.append(m)
else:
cprint("Machine inconnue: %s" % mac, 'rouge')
# Affichage des machines
cprint('---=== Machines du Crans ===---', 'bleu')
aff(machines_crans, mtech=True)
cprint('---=== Autres machines ===---', 'bleu')
aff(machines)
ttyfound = 1
# Utilisateurs connectés sur vo sur place
if gethostname() == 'vo':
cprint('---=== W(ho) sur vo ===---', 'bleu')
ttyfound = system("/usr/bin/w -s | /bin/egrep 'tty0| :0 | \(:0'")
print ''
# Conclusion
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()