diff --git a/impression/print_status.py b/impression/print_status.py index 593381d8..4fbb2463 100755 --- a/impression/print_status.py +++ b/impression/print_status.py @@ -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 d’erreur sur l’imprimante, plutôt que de spamer sur roots@crans.org, on note l’échec quelque part à l’attention d’un service de monitoring. + error_file = open(error_filename, "w+") + error_file.write("L’imprimante semble injoignable.") + error_file.close() + exit(0) + task_list = content.split('\n') # On vérifie que ce qu’on a récupéré ressemble à du CSV. Si tout se passe bien, l’imprimante envoie 13 champs par tâche. # On fait le test sur les entêtes, ce qui permet de s’en débarasser au passage. if len(task_list.pop(0).split(',')) != 13: - # En cas d’erreur sur l’imprimante, plutôt que de spamer sur roots@crans.org, on note l’échec quelque part à l’attention d’un service de monitoring. error_file = open(error_filename, "w+") error_file.write("La liste des tâches renvoyée par l’imprimante n’a pas le format attendu.") error_file.close()