[print_status] On ne crashe pas si l’imprimante est dans les choux et nous envoie du garbage.
This commit is contained in:
parent
e93a176aa3
commit
b01348c4eb
1 changed files with 11 additions and 2 deletions
|
@ -23,6 +23,7 @@ import smtplib
|
||||||
from ldap_crans import crans_ldap
|
from ldap_crans import crans_ldap
|
||||||
|
|
||||||
last_print_filename = "/var/run/print_status/last_print.txt"
|
last_print_filename = "/var/run/print_status/last_print.txt"
|
||||||
|
error_filename = "/var/run/print_status/error.txt"
|
||||||
# Cette chaîne est utilisée pour construire une regexp, il faut que ce soit une chaîne brute.
|
# Cette chaîne est utilisée pour construire une regexp, il faut que ce soit une chaîne brute.
|
||||||
files_directory = r"/var/impression/fichiers/"
|
files_directory = r"/var/impression/fichiers/"
|
||||||
printer_host = "imprimante.adm.crans.org"
|
printer_host = "imprimante.adm.crans.org"
|
||||||
|
@ -105,8 +106,16 @@ http = httplib2.Http()
|
||||||
headers, _ = http.request("http://" + printer_host + "/twelcome.cgi?CorePGTAG=0&Dummy=" + getMSE())
|
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']})
|
_, content = http.request("http://" + printer_host + "/pprint.csv?Flag=Csv_Data&LogType=0&Dummy=" + getMSE(), 'GET', headers={'Cookie': headers['set-cookie']})
|
||||||
task_list = content.split('\n')
|
task_list = content.split('\n')
|
||||||
# On enlève les entêtes et les deux lignes vides à la fin de la liste.
|
# 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.
|
||||||
task_list.pop(0)
|
# 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()
|
||||||
|
exit(0)
|
||||||
|
os.system("rm -f " + error_filename)
|
||||||
|
# On enlève aussi les deux lignes vides à la fin de la liste.
|
||||||
task_list.pop()
|
task_list.pop()
|
||||||
task_list.pop()
|
task_list.pop()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue