[print_status] On ne crashe pas non plus si l’imprimante est dans les

choux et refuse les connexions.
This commit is contained in:
Sylvain Boilard 2013-04-22 20:29:00 +02:00
parent bebb5a6e3c
commit 6c372a5b44

View file

@ -103,13 +103,20 @@ def sendMail(from_addr, to_addrs, mail_content):
http = httplib2.Http()
# On récupère la liste des tâches. Pour faire la requête, on doit récupérer un cookie de session.
headers, _ = http.request("http://" + printer_host + "/twelcome.cgi?CorePGTAG=0&Dummy=" + getMSE())
_, content = http.request("http://" + printer_host + "/pprint.csv?Flag=Csv_Data&LogType=0&Dummy=" + getMSE(), 'GET', headers={'Cookie': headers['set-cookie']})
try:
headers, _ = http.request("http://" + printer_host + "/twelcome.cgi?CorePGTAG=0&Dummy=" + getMSE())
_, content = http.request("http://" + printer_host + "/pprint.csv?Flag=Csv_Data&LogType=0&Dummy=" + getMSE(), 'GET', headers={'Cookie': headers['set-cookie']})
except:
# En cas derreur sur limprimante, plutôt que de spamer sur roots@crans.org, on note léchec quelque part à lattention dun service de monitoring.
error_file = open(error_filename, "w+")
error_file.write("Limprimante semble injoignable.")
error_file.close()
exit(0)
task_list = content.split('\n')
# On vérifie que ce quon a récupéré ressemble à du CSV. Si tout se passe bien, limprimante envoie 13 champs par tâche.
# On fait le test sur les entêtes, ce qui permet de sen débarasser au passage.
if len(task_list.pop(0).split(',')) != 13:
# En cas derreur sur limprimante, plutôt que de spamer sur roots@crans.org, on note léchec quelque part à lattention dun service de monitoring.
error_file = open(error_filename, "w+")
error_file.write("La liste des tâches renvoyée par limprimante na pas le format attendu.")
error_file.close()