From 2ca9b458513f38dfa713124c47a593f5f23827ab Mon Sep 17 00:00:00 2001 From: Daniel STAN Date: Mon, 18 Mar 2013 17:46:54 +0100 Subject: [PATCH] [print_status.py] notif pour les jobs via wrapper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Il reste un bug de notification pour le club Crans: la liste des imprimeurs de ce club semble vide. En attendant, le cron va envoyer des mails si ça arrive. --- impression/canon_wrapper.py | 5 ++++- impression/impression_wrapper.py | 2 +- impression/print_status.py | 11 +++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/impression/canon_wrapper.py b/impression/canon_wrapper.py index 66d1d219..f0ced613 100755 --- a/impression/canon_wrapper.py +++ b/impression/canon_wrapper.py @@ -177,8 +177,11 @@ def do_print(args): cook = requests.get(build_url('root')).cookies syslog('Sending pdf (%d bytes)...' % os.stat(temppdf.name).st_size) temppdf.seek(0) + filename = args.jobname + if not filename.endswith('.pdf'): + filename += '.pdf' req = requests.post(build_url('do_print'), cookies=cook, data=opt, - files={'File': (args.jobname + '.pdf', temppdf)}) + files={'File': (filename, temppdf)}) #files={'File': (args.jobname + '.pdf', proc.stdout)}) temppdf.close() if "ms_err.gif" in req.text: diff --git a/impression/impression_wrapper.py b/impression/impression_wrapper.py index ebaccd5e..76916785 100644 --- a/impression/impression_wrapper.py +++ b/impression/impression_wrapper.py @@ -39,5 +39,5 @@ class impression(impression_canon.impression): opt += ['--duplex-type', 'one-sided'] opt += ['--staple-position', self._settings['agrafage']] opt.append(self._fichier) - self.log.info("Impression(%d) : %s" % (self._jid, repr(opt))) + self.log.info("Impression(%d) : %s" % (self._jid, " ".join(opt))) subprocess.Popen(['/usr/scripts/impression/canon_wrapper.py'] + opt) diff --git a/impression/print_status.py b/impression/print_status.py index 925d6c42..b84411b0 100755 --- a/impression/print_status.py +++ b/impression/print_status.py @@ -136,9 +136,13 @@ tasks_to_treat.reverse() for item in tasks_to_treat: fields = item.split(',', 6) - if fields[3].strip('"') == "root": + if fields[3].strip('"') in ["root",'DIRECT PRINT']: result = fields[1].strip('"') - taskID, user, _ = fields[2].strip('"').split(':',2) + jobinfos = fields[2].strip('"').split(':', 2) + if len(jobinfos) <= 2: + print "Skipping: %s" % fields[2] + continue + taskID, user, _ = jobinfos user = user.split('@').pop() # On récupère le nom du club si besoin. date = buildDate(fields[5]) match_taskID = re.compile(r"impression\(%s\)" % taskID) @@ -155,6 +159,9 @@ for item in tasks_to_treat: target = db_query['club'][0] full_name = u"Club " + target.nom() send_to = map(lambda aid : db.search("aid=" + aid)['adherent'][0].mail(), target.imprimeurs()) + if send_to == []: + print "Skipping sending to %s, empty recipient" % full_name + continue historique = target.historique() historique.reverse() # Ce qu'on cherche a des chances d'être récent et donc d'être à la fin de l'historique. file_dirname = files_directory + user + r"/"