scripts/wiki/macro/HostStatus.py
bernat a4b3685c8d Le plus simple, c'est de ne pas mettre d'accents
darcs-hash:20051011093507-d1718-b56bb25be0c5f2c06f58857f7f1e661c7f0ebe45.gz
2005-10-11 11:35:07 +02:00

52 lines
1.7 KiB
Python

# -*- coding: iso-8859-1 -*-
from commands import getstatusoutput,getoutput
def Cellule(texte, couleur, f) :
"""
Retourne le code HTML d'une cellule formattée aver le formatter f
"""
code = f.table(1)
code += f.table_row(1)
code += f.table_cell(1,{'style':'background-color:%s' % couleur })
code += f.text(texte)
code += f.table_cell(0)
code += f.table_row(0)
code += f.table(0)
return code
def execute(macro, text) :
status = getstatusoutput('grep -v " 0 " /etc/autostatus/local.status')
if status[0] and status[0] != 256 :
return Cellule(u'Impossible d\'analyser le fichier de status.'.encode('utf-8'),'yellow',macro.formatter)
if not status[1].strip() :
return Cellule(u'Toutes les machines importantes sont up.'.encode('utf-8'),'lime',macro.formatter)
lines = status[1].split('\n')
f = macro.formatter
code = ''
code += f.table(1)
for line in lines :
line = line.split(' ')
code += f.table_row(1)
code += f.table_cell(1,{'style':'background-color:silver'})
code += f.text('%s (%s)' % (line [0], getoutput("grep '%s' /etc/autostatus/hosts | cut -d ' ' -f 5-" % line [0])) )
code += f.table_cell(0)
# nombre de non réponse au ping
if int(line[1]) > 2 :
code += f.table_cell(1,{'style':'background-color:red'})
code += f.text(u'down'.encode('utf-8'))
else :
code += f.table_cell(1,{'style':'background-color:blue'})
code += f.text(u'etat incertain'.encode('utf-8'))
code += f.table_cell(0)
code += f.table_row(0)
code += f.table(0)
return code.encode('iso-8859-15')