Changeset 1584 for pykota/trunk/pykota/tool.py
- Timestamp:
- 07/01/04 21:56:43 (20 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
pykota/trunk/pykota/tool.py
r1582 r1584 22 22 # 23 23 # $Log$ 24 # Revision 1.110 2004/07/01 19:56:42 jalet 25 # Better dispatching of error messages 26 # 24 27 # Revision 1.109 2004/07/01 17:45:49 jalet 25 28 # Added code to handle the description field for printers … … 451 454 except (locale.Error, IOError) : 452 455 gettext.NullTranslations().install() 453 # sys.stderr.write("PyKota : Error while loading translations\n")454 456 455 457 # pykota specific stuff … … 479 481 self.logger.log_message(message, "debug") 480 482 481 def print Error(self, message) :483 def printInfo(self, message, level="info") : 482 484 """Sends a message to standard error.""" 483 sys.stderr.write("%s \n" % message)485 sys.stderr.write("%s: %s\n" % (level.upper(), message)) 484 486 sys.stderr.flush() 485 487 … … 577 579 self.display_usage_and_quit() 578 580 except getopt.error, msg : 579 sys.stderr.write("%s\n" % msg) 580 sys.stderr.flush() 581 self.printInfo(msg) 581 582 self.display_usage_and_quit() 582 583 return (parsed, args) … … 607 608 server = smtplib.SMTP(self.smtpserver) 608 609 except socket.error, msg : 609 self. logger.log_message(_("Impossible to connect to SMTP server : %s") % msg, "error")610 self.printInfo(_("Impossible to connect to SMTP server : %s") % msg, "error") 610 611 else : 611 612 try : … … 613 614 except smtplib.SMTPException, answer : 614 615 for (k, v) in answer.recipients.items() : 615 self. logger.log_message(_("Impossible to send mail to %s, error %s : %s") % (k, v[0], v[1]), "error")616 self.printInfo(_("Impossible to send mail to %s, error %s : %s") % (k, v[0], v[1]), "error") 616 617 server.quit() 617 618 … … 640 641 else : 641 642 action = "POLICY_DENY" 642 self. logger.log_message(_("Unable to match user %s on printer %s, applying default policy (%s)") % (user.Name, printer.Name, action))643 self.printInfo(_("Unable to match user %s on printer %s, applying default policy (%s)") % (user.Name, printer.Name, action)) 643 644 else : 644 645 pagecounter = int(userpquota.PageCounter or 0) … … 769 770 else : 770 771 action = "POLICY_DENY" 771 self. logger.log_message(_("Unable to find user %s's account balance, applying default policy (%s) for printer %s") % (user.Name, action, printer.Name))772 self.printInfo(_("Unable to find user %s's account balance, applying default policy (%s) for printer %s") % (user.Name, action, printer.Name)) 772 773 return action 773 774 else : … … 830 831 if action == "DENY" : 831 832 adminmessage = _("Print Quota exceeded for group %s on printer %s") % (group.Name, printer.Name) 832 self. logger.log_message(adminmessage)833 self.printInfo(adminmessage) 833 834 if mailto in [ "BOTH", "ADMIN" ] : 834 835 self.sendMessageToAdmin(adminmail, _("Print Quota"), adminmessage) … … 841 842 elif action == "WARN" : 842 843 adminmessage = _("Print Quota low for group %s on printer %s") % (group.Name, printer.Name) 843 self. logger.log_message(adminmessage)844 self.printInfo(adminmessage) 844 845 if mailto in [ "BOTH", "ADMIN" ] : 845 846 self.sendMessageToAdmin(adminmail, _("Print Quota"), adminmessage) … … 868 869 if action == "DENY" : 869 870 adminmessage = _("Print Quota exceeded for user %s on printer %s") % (user.Name, printer.Name) 870 self. logger.log_message(adminmessage)871 self.printInfo(adminmessage) 871 872 if mailto in [ "BOTH", "USER", "EXTERNAL" ] : 872 873 message = self.config.getHardWarn(printer.Name) … … 879 880 elif action == "WARN" : 880 881 adminmessage = _("Print Quota low for user %s on printer %s") % (user.Name, printer.Name) 881 self. logger.log_message(adminmessage)882 self.printInfo(adminmessage) 882 883 if mailto in [ "BOTH", "USER", "EXTERNAL" ] : 883 884 if user.LimitBy and (user.LimitBy.lower() == "balance") : … … 980 981 # computation is just an indication of what the 981 982 # job's size MAY be. 982 self. logger.log_message(_("Unable to precompute the job's size with the generic PDL analyzer : %s") % msg, "warn")983 self.printInfo(_("Unable to precompute the job's size with the generic PDL analyzer : %s") % msg, "warn") 983 984 return 0 984 985 else : … … 994 995 self.gotSigTerm = 1 995 996 os.environ["PYKOTASTATUS"] = "CANCELLED" 996 self. logger.log_message(_("SIGTERM received, job %s cancelled.") % self.jobid, "info")997 self.printInfo(_("SIGTERM received, job %s cancelled.") % self.jobid) 997 998 998 999 def exportJobInfo(self) : … … 1035 1036 self.logdebug("Executing post-hook [%s]" % posthook) 1036 1037 os.system(posthook) 1038 1039 def printInfo(self, message, level="info") : 1040 """Sends a message to standard error.""" 1041 self.logger.log_message("%s" % message, level) 1037 1042 1038 1043 def extractInfoFromCupsOrLprng(self) : … … 1098 1103 Kseen = 1 # we assume the user wants at least one copy... 1099 1104 if (rseen is None) and jseen and Pseen and nseen : 1100 self. logger.log_message(_("Printer hostname undefined, set to 'localhost'"), "warn")1105 self.printInfo(_("Printer hostname undefined, set to 'localhost'"), "warn") 1101 1106 rseen = "localhost" 1102 1107 if jseen and Pseen and nseen and rseen : 1103 1108 # job is always in stdin (None) 1104 1109 return ("LPRNG", rseen, Pseen, nseen, jseen, None, Kseen, None, None, None) 1105 self. logger.log_message(_("Printing system unknown, args=%s") % " ".join(sys.argv), "warn")1110 self.printInfo(_("Printing system unknown, args=%s") % " ".join(sys.argv), "warn") 1106 1111 return (None, None, None, None, None, None, None, None, None, None) # Unknown printing system 1107 1112 … … 1134 1139 commandline = self.formatCommandLine(args, user, printer) 1135 1140 if not printer.Exists : 1136 self. logger.log_message(_("Printer %s not registered in the PyKota system, applying external policy (%s) for printer %s") % (self.printername, commandline, self.printername), "info")1141 self.printInfo(_("Printer %s not registered in the PyKota system, applying external policy (%s) for printer %s") % (self.printername, commandline, self.printername)) 1137 1142 if not user.Exists : 1138 self. logger.log_message(_("User %s not registered in the PyKota system, applying external policy (%s) for printer %s") % (self.username, commandline, self.printername), "info")1143 self.printInfo(_("User %s not registered in the PyKota system, applying external policy (%s) for printer %s") % (self.username, commandline, self.printername)) 1139 1144 if not userpquota.Exists : 1140 self. logger.log_message(_("User %s doesn't have quota on printer %s in the PyKota system, applying external policy (%s) for printer %s") % (self.username, self.printername, commandline, self.printername), "info")1145 self.printInfo(_("User %s doesn't have quota on printer %s in the PyKota system, applying external policy (%s) for printer %s") % (self.username, self.printername, commandline, self.printername)) 1141 1146 if os.system(commandline) : 1142 self. logger.log_message(_("External policy %s for printer %s produced an error. Job rejected. Please check PyKota's configuration files.") % (commandline, self.printername), "error")1147 self.printInfo(_("External policy %s for printer %s produced an error. Job rejected. Please check PyKota's configuration files.") % (commandline, self.printername), "error") 1143 1148 policy = "EXTERNALERROR" 1144 1149 break 1145 1150 else : 1146 1151 if not printer.Exists : 1147 self. logger.log_message(_("Printer %s not registered in the PyKota system, applying default policy (%s)") % (self.printername, policy), "info")1152 self.printInfo(_("Printer %s not registered in the PyKota system, applying default policy (%s)") % (self.printername, policy)) 1148 1153 if not user.Exists : 1149 self. logger.log_message(_("User %s not registered in the PyKota system, applying default policy (%s) for printer %s") % (self.username, policy, self.printername), "info")1154 self.printInfo(_("User %s not registered in the PyKota system, applying default policy (%s) for printer %s") % (self.username, policy, self.printername)) 1150 1155 if not userpquota.Exists : 1151 self. logger.log_message(_("User %s doesn't have quota on printer %s in the PyKota system, applying default policy (%s)") % (self.username, self.printername, policy), "info")1156 self.printInfo(_("User %s doesn't have quota on printer %s in the PyKota system, applying default policy (%s)") % (self.username, self.printername, policy)) 1152 1157 break 1153 1158 if policy == "EXTERNAL" : 1154 1159 if not printer.Exists : 1155 self. logger.log_message(_("Printer %s still not registered in the PyKota system, job will be rejected") % self.printername, "info")1160 self.printInfo(_("Printer %s still not registered in the PyKota system, job will be rejected") % self.printername) 1156 1161 if not user.Exists : 1157 self. logger.log_message(_("User %s still not registered in the PyKota system, job will be rejected on printer %s") % (self.username, self.printername), "info")1162 self.printInfo(_("User %s still not registered in the PyKota system, job will be rejected on printer %s") % (self.username, self.printername)) 1158 1163 if not userpquota.Exists : 1159 self. logger.log_message(_("User %s still doesn't have quota on printer %s in the PyKota system, job will be rejected") % (self.username, self.printername), "info")1164 self.printInfo(_("User %s still doesn't have quota on printer %s in the PyKota system, job will be rejected") % (self.username, self.printername)) 1160 1165 return (policy, printer, user, userpquota) 1161 1166 … … 1177 1182 else : 1178 1183 if policy not in ("OK", "ALLOW") : 1179 self. logger.log_message(_("Invalid policy %s for printer %s") % (policy, self.printername))1184 self.printInfo(_("Invalid policy %s for printer %s") % (policy, self.printername)) 1180 1185 return self.removeJob() 1181 1186 else :