Show
Ignore:
Timestamp:
05/21/05 00:40:21 (19 years ago)
Author:
jerome
Message:

Now dumpykota and dumpykota.cgi accept start= and end=
to specify the starting and ending dates when dumping the
history.
Syntax allowed is :

start|end=YYYY[MM[DD[hh[mm[ss]]]]]

and this is REALLY powerful !

Files:
1 modified

Legend:

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

    r2217 r2266  
    2323# 
    2424 
     25from mx import DateTime 
     26 
    2527class PyKotaStorageError(Exception): 
    2628    """An exception for Quota Storage related stuff.""" 
     
    588590        return text 
    589591         
     592    def cleanDates(self, startdate, enddate) :     
     593        """Clean the dates to create a correct filter.""" 
     594        if startdate is None : 
     595            startdate = enddate 
     596        if enddate is None :     
     597            enddate = startdate 
     598        if (startdate is None) and (enddate is None) :     
     599            return (None, None) 
     600        if startdate.isdigit() and enddate.isdigit() : 
     601            datedict = { "start" : startdate, "end" : enddate }     
     602            for limit in datedict.keys() : 
     603                dateval = datedict[limit] 
     604                lgdateval = len(dateval) 
     605                if lgdateval == 4 : 
     606                    if limit == "start" :  
     607                        dateval = "%s0101 00:00:00" % dateval 
     608                    else :   
     609                        dateval = "%s1231 23:59:59" % dateval 
     610                elif lgdateval == 6 : 
     611                    if limit == "start" :  
     612                        dateval = "%s01 00:00:00" % dateval 
     613                    else :   
     614                        mxdate = DateTime.ISO.ParseDateTime("%s01 00:00:00" % dateval) 
     615                        dateval = "%s%02i 23:59:59" % (dateval, mxdate.days_in_month) 
     616                elif lgdateval == 8 : 
     617                    if limit == "start" :  
     618                        dateval = "%s 00:00:00" % dateval 
     619                    else :   
     620                        dateval = "%s 23:59:59" % dateval 
     621                elif lgdateval == 10 : 
     622                    if limit == "start" :  
     623                        dateval = "%s %s:00:00" % (dateval[:8], dateval[8:]) 
     624                    else :   
     625                        dateval = "%s %s:59:59" % (dateval[:8], dateval[8:]) 
     626                elif lgdateval == 12 : 
     627                    if limit == "start" :  
     628                        dateval = "%s %s:%s:00" % (dateval[:8], dateval[8:10], dateval[10:]) 
     629                    else :   
     630                        dateval = "%s %s:%s:59" % (dateval[:8], dateval[8:10], dateval[10:]) 
     631                elif lgdateval == 14 :         
     632                    dateval = "%s %s:%s:%s" % (dateval[:8], dateval[8:10], dateval[10:12], dateval[12:]) 
     633                else :     
     634                    dateval = None 
     635                try :     
     636                    DateTime.ISO.ParseDateTime(dateval) 
     637                except :     
     638                    dateval = None 
     639                datedict[limit] = dateval     
     640            (start, end) = (datedict["start"], datedict["end"]) 
     641            if start > end : 
     642                (start, end) = (end, start) 
     643            return (start, end)     
     644        else :             
     645            return (None, None) 
     646         
    590647def openConnection(pykotatool) : 
    591648    """Returns a connection handle to the appropriate Quota Storage Database."""