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/storages
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • 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")