diff --git a/wiki/macro/HostStatus.py b/wiki/macro/HostStatus.py new file mode 100644 index 00000000..cf4021ab --- /dev/null +++ b/wiki/macro/HostStatus.py @@ -0,0 +1,52 @@ +# -*- coding: iso-8859-1 -*- + +from commands import getstatusoutput + +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] : + return Cellule('Impossible d\'analyser le fichier de status.','yellow',macro.formatter) + + if not status[1].strip() : + return Cellule('Toutes les machines sont up, Vince est de bonne humeur.','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(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('down') + else : + code += f.table_cell(1,{'style':'background-color:blue'}) + code += f.text('up') + code += f.table_cell(0) + code += f.table_row(0) + + code += f.table(0) + + return code.encode('iso-8859-15')