
Ignore-this: 214e179af1832d0388ce283dea720c4a darcs-hash:20111105190930-28565-5a615ebc219bd7f3cd007c4101bfc5f912bfa808.gz
76 lines
2.6 KiB
Python
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')
|
|
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, mtech=True)
|
|
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()
|