# -*- coding: iso-8859-1 -*- import re 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) : lines = open('/etc/autostatus/local.status').readlines() # if status[0] and status[0] != 256 : # return Cellule(u'Impossible d\'analyser le fichier de status.','yellow',macro.formatter) # # if not status[1].strip() : # return Cellule(u'Toutes les machines importantes sont up.','lime',macro.formatter) # # lines = status[1].split('\n') f = macro.formatter code = '' code += f.heading(1,3) code += 'Autostatus des machines' code += f.heading(0,3) code += f.table(1) for line in lines: if re.match('dummy_host_\d+ 0 \n', line): if line == 'dummy_host_9 0 \n': code += f.table(0) code += f.heading(1,3) code += 'Autostatus des bornes wifi' code += f.heading(0,3) code += f.table(1) if not re.search(' 0 ', line): line = line.split(' ') code += f.table_row(1) code += f.table_cell(1,{'style':'background-color:silver'}) code += unicode(f.text('%s (%s)' % (line [0], getoutput("grep '^%s[^a-zA-Z]' /etc/autostatus/hosts | cut -d ' ' -f 5-" % line [0])) ), "iso-8859-15") 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') else : code += f.table_cell(1,{'style':'background-color:blue'}) code += f.text(u'état incertain') code += f.table_cell(0) code += f.table_row(0) code += f.table(0) return code