Show
Ignore:
Timestamp:
02/06/03 15:28:59 (21 years ago)
Author:
jalet
Message:

edpykota should be ok, minus some typos

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/storages/sql.py

    r713 r719  
    1515# 
    1616# $Log$ 
     17# Revision 1.7  2003/02/06 14:28:59  jalet 
     18# edpykota should be ok, minus some typos 
     19# 
    1720# Revision 1.6  2003/02/06 09:19:02  jalet 
    1821# More robust behavior (hopefully) when the user or printer is not managed 
     
    4043 
    4144class SQLStorage :     
     45    def getMatchingPrinters(self, printerpattern) : 
     46        """Returns the list of all printer names which match a certain pattern.""" 
     47        printerslist = [] 
     48        # We 'could' do a SELECT printername FROM printers WHERE printername LIKE ... 
     49        # but we don't because other storages semantics may be different, so every 
     50        # storage should use fnmatch to match patterns and be storage agnostic 
     51        result = self.doQuery("SELECT printername FROM printers;") 
     52        result = self.doParseResult() 
     53        if result is not None : 
     54            for printer in result : 
     55                if fnmatch.fnmatchcase(printer["printername"], printerpattern) : 
     56                    printerslist.append(printer["printername"]) 
     57        return printerslist         
     58             
    4259    def getUserId(self, username) : 
     60        """Returns a userid given a username.""" 
    4361        result = self.doQuery("SELECT id FROM users WHERE username=%s;" % self.doQuote(username)) 
    4462        try : 
     
    4866             
    4967    def getPrinterId(self, printername) :         
     68        """Returns a printerid given a printername.""" 
    5069        result = self.doQuery("SELECT id FROM printers WHERE printername=%s;" % self.doQuote(printername)) 
    5170        try : 
     
    5574             
    5675    def getPrinterPageCounter(self, printername) : 
     76        """Returns the last page counter value for a printer given its name.""" 
    5777        result = self.doQuery("SELECT pagecounter, lastusername FROM printers WHERE printername=%s;" % self.doQuote(printername)) 
    5878        try : 
     
    6282         
    6383    def updatePrinterPageCounter(self, printername, username, pagecount) : 
     84        """Updates the last page counter information for a printer given its name, last username and pagecount.""" 
    6485        return self.doQuery("UPDATE printers SET pagecounter=%s, lastusername=%s WHERE printername=%s;" % (self.doQuote(pagecount), self.doQuote(username), self.doQuote(printername))) 
    6586         
     
    7596         
    7697    def getUPIds(self, username, printername) :     
     98        """Returns a tuple (userid, printerid) given a username and a printername.""" 
    7799        return (self.getUserId(username), self.getPrinterId(printername)) 
    78100         
    79101    def getUserPQuota(self, username, printername) : 
     102        """Returns the Print Quota information for a given (username, printername).""" 
    80103        (userid, printerid) = self.getUPIds(username, printername) 
    81104        if (userid is not None) and (printerid is not None) : 
     
    87110         
    88111    def setUserPQuota(self, username, printername, softlimit, hardlimit) : 
     112        """Sets soft and hard limits for a user quota on a specific printer given (username, printername).""" 
    89113        (userid, printerid) = self.getUPIds(username, printername) 
    90114        if (userid is not None) and (printerid is not None) : 
     
    92116         
    93117    def updateUserPQuota(self, username, printername, pagecount) : 
     118        """Updates the used user Quota information given (username, printername) and a job size in pages.""" 
    94119        (userid, printerid) = self.getUPIds(username, printername) 
    95120        if (userid is not None) and (printerid is not None) : 
     
    97122         
    98123    def buyUserPQuota(self, username, printername, pagebought) : 
     124        """Buys pages for a given (username, printername).""" 
    99125        self.updateUserPQuota(username, printername, -pagebought) 
    100126