allow explicit setting of the time stamp when creating a track; this is necessary for processing log file items (access logs)

git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2968 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2008-11-09 11:20:19 +00:00
parent 2af0071972
commit b850fcdfbf
2 changed files with 8 additions and 4 deletions

View file

@ -172,19 +172,23 @@ class TrackingStorage(BTreeContainer):
trackId = self.idFromNum(self.trackNum)
return trackId, self.trackNum
def saveUserTrack(self, taskId, runId, userName, data, update=False):
def saveUserTrack(self, taskId, runId, userName, data, update=False, timeStamp=None):
ts = timeStamp or getTimeStamp()
if not runId:
runId = self.currentRuns.get(taskId) or self.startRun(taskId)
run = self.getRun(runId=runId)
if run is None:
raise ValueError('Invalid run: %i.' % runId)
run.end = getTimeStamp()
if run.end < ts:
run.end = ts
if update:
track = self.getLastUserTrack(taskId, runId, userName)
if track is not None:
return self.updateTrack(track, data)
trackId, trackNum = self.generateTrackId()
track = self.trackFactory(taskId, runId, userName, data)
if timeStamp:
track.timeStamp = timeStamp
self[trackId] = track
self.indexTrack(trackNum, track)
return trackId

View file

@ -31,8 +31,8 @@ class Logger(object):
handler = None
def __init__(self, logname, logfile, logformat='%(asctime)s;%(message)s',
**kw):
def __init__(self, logname, logfile,
logformat='%(asctime)s;%(message)s', **kw):
self.logname = logname
self.logfile = logfile
self.logformat = logformat