Changeset 1520 for pykota/trunk/pykota

Show
Ignore:
Timestamp:
06/04/04 01:14:11 (20 years ago)
Author:
jalet
Message:

Now stores the job's size in bytes in the database.
Preliminary work on payments storage : database schemas are OK now,
but no code to store payments yet.
Removed schema picture, not relevant anymore.

Location:
pykota/trunk/pykota
Files:
4 modified

Legend:

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

    r1502 r1520  
    2222# 
    2323# $Log$ 
     24# Revision 1.53  2004/06/03 23:14:10  jalet 
     25# Now stores the job's size in bytes in the database. 
     26# Preliminary work on payments storage : database schemas are OK now, 
     27# but no code to store payments yet. 
     28# Removed schema picture, not relevant anymore. 
     29# 
    2430# Revision 1.52  2004/05/26 14:49:57  jalet 
    2531# First try at saving the job-originating-hostname in the database 
     
    303309            raise AttributeError, name 
    304310             
    305     def addJobToHistory(self, jobid, user, pagecounter, action, jobsize=None, jobprice=None, filename=None, title=None, copies=None, options=None, clienthost=None) : 
     311    def addJobToHistory(self, jobid, user, pagecounter, action, jobsize=None, jobprice=None, filename=None, title=None, copies=None, options=None, clienthost=None, jobsizebytes=None) : 
    306312        """Adds a job to the printer's history.""" 
    307         self.parent.writeJobNew(self, user, jobid, pagecounter, action, jobsize, jobprice, filename, title, copies, options, clienthost) 
     313        self.parent.writeJobNew(self, user, jobid, pagecounter, action, jobsize, jobprice, filename, title, copies, options, clienthost, jobsizebytes) 
    308314        # TODO : update LastJob object ? Probably not needed. 
    309315         
     
    449455        self.JobId = None 
    450456        self.PrinterPageCounter = None 
     457        self.JobSizeBytes = None 
    451458        self.JobSize = None 
    452459        self.JobAction = None 
  • pykota/trunk/pykota/storages/ldapstorage.py

    r1510 r1520  
    2222# 
    2323# $Log$ 
     24# Revision 1.67  2004/06/03 23:14:10  jalet 
     25# Now stores the job's size in bytes in the database. 
     26# Preliminary work on payments storage : database schemas are OK now, 
     27# but no code to store payments yet. 
     28# Removed schema picture, not relevant anymore. 
     29# 
    2430# Revision 1.66  2004/05/28 20:56:45  jalet 
    2531# Extended syntax for LDAP specific newuser and newgroup directives. Untested. 
     
    603609            lastjob.lastjobident = result[0][0] 
    604610            lastjobident = result[0][1]["pykotaLastJobIdent"][0] 
    605             result = self.doSearch("objectClass=pykotaJob", ["pykotaHostName", "pykotaUserName", "pykotaJobId", "pykotaPrinterPageCounter", "pykotaJobSize", "pykotaAction", "pykotaJobPrice", "pykotaFileName", "pykotaTitle", "pykotaCopies", "pykotaOptions", "createTimestamp"], base="cn=%s,%s" % (lastjobident, self.info["jobbase"]), scope=ldap.SCOPE_BASE) 
     611            result = self.doSearch("objectClass=pykotaJob", ["pykotaJobSizeBytes", "pykotaHostName", "pykotaUserName", "pykotaJobId", "pykotaPrinterPageCounter", "pykotaJobSize", "pykotaAction", "pykotaJobPrice", "pykotaFileName", "pykotaTitle", "pykotaCopies", "pykotaOptions", "createTimestamp"], base="cn=%s,%s" % (lastjobident, self.info["jobbase"]), scope=ldap.SCOPE_BASE) 
    606612            if result : 
    607613                fields = result[0][1] 
     
    618624                lastjob.JobOptions = fields.get("pykotaOptions", [""])[0] 
    619625                lastjob.JobHostName = fields.get("pykotaHostName", [""])[0] 
     626                lastjob.JobSizeBytes = fields.get("pykotaJobSizeBytes", [0L])[0] 
    620627                date = fields.get("createTimestamp", ["19700101000000"])[0] 
    621628                year = int(date[:4]) 
     
    945952        self.doModify(lastjob.ident, fields)          
    946953         
    947     def writeJobNew(self, printer, user, jobid, pagecounter, action, jobsize=None, jobprice=None, filename=None, title=None, copies=None, options=None, clienthost=None) : 
     954    def writeJobNew(self, printer, user, jobid, pagecounter, action, jobsize=None, jobprice=None, filename=None, title=None, copies=None, options=None, clienthost=None, jobsizebytes=None) : 
    948955        """Adds a job in a printer's history.""" 
    949956        if (not self.disablehistory) or (not printer.LastJob.Exists) : 
     
    966973                   "pykotaOptions" : str(options),  
    967974                   "pykotaHostName" : str(clienthost),  
     975                   "pykotaJobSizeBytes" : str(jobsizebytes), 
    968976                 } 
    969977        if (not self.disablehistory) or (not printer.LastJob.Exists) : 
     
    10461054            where = precond 
    10471055        jobs = []     
    1048         result = self.doSearch(where, fields=["pykotaHostName", "pykotaUserName", "pykotaPrinterName", "pykotaJobId", "pykotaPrinterPageCounter", "pykotaAction", "pykotaJobSize", "pykotaJobPrice", "pykotaFileName", "pykotaTitle", "pykotaCopies", "pykotaOptions", "createTimestamp"], base=self.info["jobbase"]) 
     1056        result = self.doSearch(where, fields=["pykotaJobSizeBytes", "pykotaHostName", "pykotaUserName", "pykotaPrinterName", "pykotaJobId", "pykotaPrinterPageCounter", "pykotaAction", "pykotaJobSize", "pykotaJobPrice", "pykotaFileName", "pykotaTitle", "pykotaCopies", "pykotaOptions", "createTimestamp"], base=self.info["jobbase"]) 
    10491057        if result : 
    10501058            for (ident, fields) in result : 
     
    10611069                job.JobOptions = fields.get("pykotaOptions", [""])[0] 
    10621070                job.JobHostName = fields.get("pykotaHostName", [""])[0] 
     1071                job.JobSizeBytes = fields.get("pykotaJobSizeBytes", [0L])[0] 
    10631072                date = fields.get("createTimestamp", ["19700101000000"])[0] 
    10641073                year = int(date[:4]) 
  • pykota/trunk/pykota/storages/pgstorage.py

    r1327 r1520  
    2222# 
    2323# $Log$ 
     24# Revision 1.36  2004/06/03 23:14:11  jalet 
     25# Now stores the job's size in bytes in the database. 
     26# Preliminary work on payments storage : database schemas are OK now, 
     27# but no code to store payments yet. 
     28# Removed schema picture, not relevant anymore. 
     29# 
    2430# Revision 1.35  2004/02/02 22:44:16  jalet 
    2531# Preliminary work on Relationnal Database Independance via DB-API 2.0 
     
    223229        elif type(field) == type(0) :     
    224230            typ = "int" 
     231        elif type(field) == type(0L) :     
     232            typ = "int" 
    225233        else :     
    226234            typ = "text" 
  • pykota/trunk/pykota/storages/sql.py

    r1502 r1520  
    2222# 
    2323# $Log$ 
     24# Revision 1.40  2004/06/03 23:14:11  jalet 
     25# Now stores the job's size in bytes in the database. 
     26# Preliminary work on payments storage : database schemas are OK now, 
     27# but no code to store payments yet. 
     28# Removed schema picture, not relevant anymore. 
     29# 
    2430# Revision 1.39  2004/05/26 14:50:12  jalet 
    2531# First try at saving the job-originating-hostname in the database 
     
    162168            lastjob.JobDate = fields.get("jobdate") 
    163169            lastjob.JobHostName = fields.get("hostname") 
     170            lastjob.JobSizeBytes = fields.get("jobsizebytes") 
    164171            lastjob.Exists = 1 
    165172        return lastjob 
     
    339346        self.doModify("UPDATE jobhistory SET jobsize=%s, jobprice=%s WHERE id=%s" % (self.doQuote(jobsize), self.doQuote(jobprice), self.doQuote(lastjob.ident))) 
    340347         
    341     def writeJobNew(self, printer, user, jobid, pagecounter, action, jobsize=None, jobprice=None, filename=None, title=None, copies=None, options=None, clienthost=None) :     
     348    def writeJobNew(self, printer, user, jobid, pagecounter, action, jobsize=None, jobprice=None, filename=None, title=None, copies=None, options=None, clienthost=None, jobsizebytes=None) :     
    342349        """Adds a job in a printer's history.""" 
    343350        if (not self.disablehistory) or (not printer.LastJob.Exists) : 
    344351            if jobsize is not None : 
    345                 self.doModify("INSERT INTO jobhistory (userid, printerid, jobid, pagecounter, action, jobsize, jobprice, filename, title, copies, options, hostname) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" % (self.doQuote(user.ident), self.doQuote(printer.ident), self.doQuote(jobid), self.doQuote(pagecounter), self.doQuote(action), self.doQuote(jobsize), self.doQuote(jobprice), self.doQuote(filename), self.doQuote(title), self.doQuote(copies), self.doQuote(options), self.doQuote(clienthost))) 
     352                self.doModify("INSERT INTO jobhistory (userid, printerid, jobid, pagecounter, action, jobsize, jobprice, filename, title, copies, options, hostname, jobsizebytes) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" % (self.doQuote(user.ident), self.doQuote(printer.ident), self.doQuote(jobid), self.doQuote(pagecounter), self.doQuote(action), self.doQuote(jobsize), self.doQuote(jobprice), self.doQuote(filename), self.doQuote(title), self.doQuote(copies), self.doQuote(options), self.doQuote(clienthost), self.doQuote(jobsizebytes))) 
    346353            else :     
    347                 self.doModify("INSERT INTO jobhistory (userid, printerid, jobid, pagecounter, action, filename, title, copies, options, hostname) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" % (self.doQuote(user.ident), self.doQuote(printer.ident), self.doQuote(jobid), self.doQuote(pagecounter), self.doQuote(action), self.doQuote(filename), self.doQuote(title), self.doQuote(copies), self.doQuote(options), self.doQuote(clienthost))) 
     354                self.doModify("INSERT INTO jobhistory (userid, printerid, jobid, pagecounter, action, filename, title, copies, options, hostname, jobsizebytes) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" % (self.doQuote(user.ident), self.doQuote(printer.ident), self.doQuote(jobid), self.doQuote(pagecounter), self.doQuote(action), self.doQuote(filename), self.doQuote(title), self.doQuote(copies), self.doQuote(options), self.doQuote(clienthost), self.doQuote(jobsizebytes))) 
    348355        else :         
    349356            # here we explicitly want to reset jobsize to NULL if needed 
    350             self.doModify("UPDATE jobhistory SET userid=%s, jobid=%s, pagecounter=%s, action=%s, jobsize=%s, jobprice=%s, filename=%s, title=%s, copies=%s, options=%s, hostname=%s, jobdate=now() WHERE id=%s" % (self.doQuote(user.ident), self.doQuote(jobid), self.doQuote(pagecounter), self.doQuote(action), self.doQuote(jobsize), self.doQuote(jobprice), self.doQuote(filename), self.doQuote(title), self.doQuote(copies), self.doQuote(options), self.doQuote(clienthost), self.doQuote(printer.LastJob.ident))) 
     357            self.doModify("UPDATE jobhistory SET userid=%s, jobid=%s, pagecounter=%s, action=%s, jobsize=%s, jobprice=%s, filename=%s, title=%s, copies=%s, options=%s, hostname=%s, jobsizebytes=%s, jobdate=now() WHERE id=%s" % (self.doQuote(user.ident), self.doQuote(jobid), self.doQuote(pagecounter), self.doQuote(action), self.doQuote(jobsize), self.doQuote(jobprice), self.doQuote(filename), self.doQuote(title), self.doQuote(copies), self.doQuote(options), self.doQuote(clienthost), self.doQuote(jobsizebytes), self.doQuote(printer.LastJob.ident))) 
    351358             
    352359    def writeUserPQuotaLimits(self, userpquota, softlimit, hardlimit) : 
     
    406413                job.JobDate = fields.get("jobdate") 
    407414                job.JobHostName = fields.get("hostname") 
     415                job.JobSizeBytes = fields.get("jobsizebytes") 
    408416                job.UserName = fields.get("username") 
    409417                job.PrinterName = fields.get("printername")