root / pykota / trunk / pykota / requesters / external.py @ 786

Revision 786, 1.9 kB (checked in by jalet, 21 years ago)

Small problem wrt external requester

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
RevLine 
[745]1#! /usr/bin/env python
2
3# PyKota - Print Quotas for CUPS
4#
5# (c) 2003 Jerome Alet <alet@librelogiciel.com>
6# You're welcome to redistribute this software under the
7# terms of the GNU General Public Licence version 2.0
8# or, at your option, any higher version.
9#
10# You can read the complete GNU GPL in the file COPYING
11# which should come along with this software, or visit
12# the Free Software Foundation's WEB site http://www.fsf.org
13#
14# $Id$
15#
16# $Log$
[786]17# Revision 1.4  2003/02/10 10:36:33  jalet
18# Small problem wrt external requester
19#
[780]20# Revision 1.3  2003/02/10 00:42:17  jalet
21# External requester should be ok (untested)
22# New syntax for configuration file wrt requesters
23#
[773]24# Revision 1.2  2003/02/09 13:05:43  jalet
25# Internationalization continues...
26#
[745]27# Revision 1.1  2003/02/07 13:15:01  jalet
28# External requester skeleton added.
29#
30#
31#
32
33import os
34from pykota.requester import PyKotaRequesterError
35
36class Requester :
37    """A class to send queries to printers via external commands."""
[780]38    def __init__(self, config, printername, arguments) :
[745]39        """Sets instance vars depending on the current printer."""
40        self.printername = printername
[780]41        self.commandline = arguments[0]
[745]42       
[780]43    def getPrinterPageCounter(self, printer) :
44        """Returns the page counter from the printer via an external command.
[745]45       
[780]46           The external command must report the life time page number of the printer on stdout.
[745]47        """
[780]48        commandline = self.commandline % locals()
49        if printer is None :
50            raise PyKotaRequesterError, _("Unknown printer address in EXTERNAL(%s) for printer %s") % (commandline, self.printername)
51        answer = os.popen(commandline)
52        try :
53            pagecounter = int(answer.readline().strip())
[786]54        except ValueError :   
[780]55            raise PyKotaRequesterError, _("Unable to query printer %s via EXTERNAL(%s)") % (printer, commandline) 
56        answer.close()
57        return pagecounter
[745]58       
Note: See TracBrowser for help on using the browser.