# -*- 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'état incertain'.encode('utf-8')) code += f.table_cell(0) code += f.table_row(0) code += f.table(0) return code.encode('iso-8859-15')