From 6c372a5b444880e6fcb3c5f9232394a47241afed Mon Sep 17 00:00:00 2001 From: Sylvain Boilard Date: Mon, 22 Apr 2013 20:29:00 +0200 Subject: [PATCH] =?UTF-8?q?[print=5Fstatus]=20On=20ne=20crashe=20pas=20non?= =?UTF-8?q?=20plus=20si=20l=E2=80=99imprimante=20est=20dans=20les=20choux?= =?UTF-8?q?=20et=20refuse=20les=20connexions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- impression/print_status.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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()