Show
Ignore:
Timestamp:
07/01/04 21:56:43 (20 years ago)
Author:
jalet
Message:

Better dispatching of error messages

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/tool.py

    r1582 r1584  
    2222# 
    2323# $Log$ 
     24# Revision 1.110  2004/07/01 19:56:42  jalet 
     25# Better dispatching of error messages 
     26# 
    2427# Revision 1.109  2004/07/01 17:45:49  jalet 
    2528# Added code to handle the description field for printers 
     
    451454        except (locale.Error, IOError) : 
    452455            gettext.NullTranslations().install() 
    453             # sys.stderr.write("PyKota : Error while loading translations\n") 
    454456     
    455457        # pykota specific stuff 
     
    479481            self.logger.log_message(message, "debug") 
    480482             
    481     def printError(self, message) :         
     483    def printInfo(self, message, level="info") :         
    482484        """Sends a message to standard error.""" 
    483         sys.stderr.write("%s\n" % message) 
     485        sys.stderr.write("%s: %s\n" % (level.upper(), message)) 
    484486        sys.stderr.flush() 
    485487         
     
    577579                self.display_usage_and_quit() 
    578580        except getopt.error, msg : 
    579             sys.stderr.write("%s\n" % msg) 
    580             sys.stderr.flush() 
     581            self.printInfo(msg) 
    581582            self.display_usage_and_quit() 
    582583        return (parsed, args) 
     
    607608            server = smtplib.SMTP(self.smtpserver) 
    608609        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") 
    610611        else : 
    611612            try : 
     
    613614            except smtplib.SMTPException, answer :     
    614615                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") 
    616617            server.quit() 
    617618         
     
    640641            else :     
    641642                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)) 
    643644        else :     
    644645            pagecounter = int(userpquota.PageCounter or 0) 
     
    769770                else :     
    770771                    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)) 
    772773                return action         
    773774            else :     
     
    830831        if action == "DENY" : 
    831832            adminmessage = _("Print Quota exceeded for group %s on printer %s") % (group.Name, printer.Name) 
    832             self.logger.log_message(adminmessage) 
     833            self.printInfo(adminmessage) 
    833834            if mailto in [ "BOTH", "ADMIN" ] : 
    834835                self.sendMessageToAdmin(adminmail, _("Print Quota"), adminmessage) 
     
    841842        elif action == "WARN" :     
    842843            adminmessage = _("Print Quota low for group %s on printer %s") % (group.Name, printer.Name) 
    843             self.logger.log_message(adminmessage) 
     844            self.printInfo(adminmessage) 
    844845            if mailto in [ "BOTH", "ADMIN" ] : 
    845846                self.sendMessageToAdmin(adminmail, _("Print Quota"), adminmessage) 
     
    868869        if action == "DENY" : 
    869870            adminmessage = _("Print Quota exceeded for user %s on printer %s") % (user.Name, printer.Name) 
    870             self.logger.log_message(adminmessage) 
     871            self.printInfo(adminmessage) 
    871872            if mailto in [ "BOTH", "USER", "EXTERNAL" ] : 
    872873                message = self.config.getHardWarn(printer.Name) 
     
    879880        elif action == "WARN" :     
    880881            adminmessage = _("Print Quota low for user %s on printer %s") % (user.Name, printer.Name) 
    881             self.logger.log_message(adminmessage) 
     882            self.printInfo(adminmessage) 
    882883            if mailto in [ "BOTH", "USER", "EXTERNAL" ] : 
    883884                if user.LimitBy and (user.LimitBy.lower() == "balance") :  
     
    980981            # computation is just an indication of what the 
    981982            # 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") 
    983984            return 0 
    984985        else :     
     
    994995        self.gotSigTerm = 1 
    995996        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) 
    997998         
    998999    def exportJobInfo(self) :     
     
    10351036            self.logdebug("Executing post-hook [%s]" % posthook) 
    10361037            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) 
    10371042         
    10381043    def extractInfoFromCupsOrLprng(self) :     
     
    10981103                Kseen = 1       # we assume the user wants at least one copy... 
    10991104            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") 
    11011106                rseen = "localhost" 
    11021107            if jseen and Pseen and nseen and rseen :         
    11031108                # job is always in stdin (None) 
    11041109                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") 
    11061111        return (None, None, None, None, None, None, None, None, None, None)   # Unknown printing system 
    11071112         
     
    11341139                commandline = self.formatCommandLine(args, user, printer) 
    11351140                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)) 
    11371142                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)) 
    11391144                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)) 
    11411146                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") 
    11431148                    policy = "EXTERNALERROR" 
    11441149                    break 
    11451150            else :         
    11461151                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)) 
    11481153                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)) 
    11501155                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)) 
    11521157                break 
    11531158        if policy == "EXTERNAL" :     
    11541159            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) 
    11561161            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)) 
    11581163            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)) 
    11601165        return (policy, printer, user, userpquota) 
    11611166         
     
    11771182        else : 
    11781183            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)) 
    11801185                return self.removeJob() 
    11811186            else :