Changeset 1584 for pykota/trunk/pykota

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

Better dispatching of error messages

Location:
pykota/trunk/pykota
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/accounters/hardware.py

    r1536 r1584  
    2222# 
    2323# $Log$ 
     24# Revision 1.6  2004/07/01 19:56:42  jalet 
     25# Better dispatching of error messages 
     26# 
    2427# Revision 1.5  2004/06/10 22:42:06  jalet 
    2528# Better messages in logs 
     
    6063            # can't get actual page counter, assume printer is off or warming up 
    6164            # log the message anyway. 
    62             self.filter.logger.log_message("%s" % msg, "warn") 
     65            self.filter.printInfo("%s" % msg, "warn") 
    6366            counter = None 
    6467        self.filter.logdebug("Printer's internal page counter value is : %s" % str(counter)) 
     
    106109        if printer is None : 
    107110            raise PyKotaAccounterError, _("Unknown printer address in HARDWARE(%s) for printer %s") % (commandline, self.filter.printername) 
    108         self.filter.logger.log_message(_("Launching HARDWARE(%s)...") % commandline, "info") 
     111        self.filter.printInfo(_("Launching HARDWARE(%s)...") % commandline) 
    109112        error = 1 
    110113        pagecounter = None 
     
    114117            pagecounter = int(line.strip()) 
    115118        except ValueError :     
    116             self.filter.logger.log_message(_("Incorrect answer : %s") % repr(line), "error") 
     119            self.filter.printInfo(_("Incorrect answer : %s") % repr(line), "error") 
    117120        except IOError :     
    118121            # we were interrupted by a signal, certainely a SIGTERM 
     
    122125            except :     
    123126                pass # already killed ? 
    124             self.filter.logger.log_message(_("SIGTERM was sent to hardware accounter %s (pid: %s)") % (commandline, child.pid), "info") 
     127            self.filter.printInfo(_("SIGTERM was sent to hardware accounter %s (pid: %s)") % (commandline, child.pid)) 
    125128        else :     
    126129            error = 0 
  • pykota/trunk/pykota/accounters/software.py

    r1536 r1584  
    2222# 
    2323# $Log$ 
     24# Revision 1.6  2004/07/01 19:56:43  jalet 
     25# Better dispatching of error messages 
     26# 
    2427# Revision 1.5  2004/06/10 22:42:06  jalet 
    2528# Better messages in logs 
     
    4952    def computeJobSize(self) :     
    5053        """Feeds an external command with our datas to let it compute the job size, and return its value.""" 
    51         self.filter.logger.log_message(_("Launching SOFTWARE(%s)...") % self.arguments, "info") 
     54        self.filter.printInfo(_("Launching SOFTWARE(%s)...") % self.arguments) 
    5255        MEGABYTE = 1024*1024 
    5356        self.filter.jobdatastream.seek(0) 
     
    6265        except (IOError, OSError), msg :     
    6366            msg = "%s : %s" % (self.arguments, msg)  
    64             self.filter.logger.log_message(_("Unable to compute job size with accounter %s") % msg) 
     67            self.filter.printInfo(_("Unable to compute job size with accounter %s") % msg) 
    6568         
    6669        pagecount = 0 
     
    6871            pagecount = int(child.fromchild.readline().strip()) 
    6972        except (AttributeError, ValueError) : 
    70             self.filter.logger.log_message(_("Unable to compute job size with accounter %s") % self.arguments) 
     73            self.filter.printInfo(_("Unable to compute job size with accounter %s") % self.arguments) 
    7174        except (IOError, OSError), msg :     
    7275            msg = "%s : %s" % (self.arguments, msg)  
    73             self.filter.logger.log_message(_("Unable to compute job size with accounter %s") % msg) 
     76            self.filter.printInfo(_("Unable to compute job size with accounter %s") % msg) 
    7477        child.fromchild.close() 
    7578         
     
    7780            retcode = child.wait() 
    7881        except OSError, msg :     
    79             self.filter.logger.log_message(_("Problem while waiting for software accounter pid %s to exit : %s") % (child.pid, msg)) 
     82            self.filter.printInfo(_("Problem while waiting for software accounter pid %s to exit : %s") % (child.pid, msg)) 
    8083        else :     
    8184            if os.WIFEXITED(retcode) : 
     
    8386            else :     
    8487                status = retcode 
    85             self.filter.logger.log_message(_("Software accounter %s exit code is %s") % (self.arguments, repr(retcode))) 
     88            self.filter.printInfo(_("Software accounter %s exit code is %s") % (self.arguments, repr(retcode))) 
    8689        self.filter.logdebug("Software accounter %s said job is %s pages long." % (self.arguments, pagecount)) 
    8790        return pagecount     
  • pykota/trunk/pykota/storages/ldapstorage.py

    r1582 r1584  
    2222# 
    2323# $Log$ 
     24# Revision 1.72  2004/07/01 19:56:43  jalet 
     25# Better dispatching of error messages 
     26# 
    2427# Revision 1.71  2004/07/01 17:45:49  jalet 
    2528# Added code to handle the description field for printers 
     
    805808                message = _("Unable to find an existing objectClass %s entry with %s=%s to attach pykotaAccount objectClass") % (where, self.info["userrdn"], user.Name) 
    806809                if action.lower() == "warn" :     
    807                     self.tool.logger.log_message("%s. A new entry will be created instead." % message, "warn") 
     810                    self.tool.printInfo("%s. A new entry will be created instead." % message, "warn") 
    808811                else : # 'fail' or incorrect setting 
    809812                    raise PyKotaStorageError, "%s. Action aborted. Please check your configuration." % message 
     
    841844                message = _("Unable to find an existing entry to attach pykotaGroup objectclass %s") % group.Name 
    842845                if action.lower() == "warn" :     
    843                     self.tool.logger.log_message("%s. A new entry will be created instead." % message, "warn") 
     846                    self.tool.printInfo("%s. A new entry will be created instead." % message, "warn") 
    844847                else : # 'fail' or incorrect setting 
    845848                    raise PyKotaStorageError, "%s. Action aborted. Please check your configuration." % message 
  • 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 : 
  • pykota/trunk/pykota/version.py

    r1575 r1584  
    2222# 
    2323 
    24 __version__ = "1.19alpha28_unofficial" 
     24__version__ = "1.19alpha29_unofficial" 
    2525 
    2626__doc__ = """PyKota : a complete Printing Quota Solution for CUPS and LPRng."""