[Checkins] SVN: lovely.remotetask/trunk/src/lovely/remotetask/
added clean method
Bernd Dorn
bernd.dorn at fhv.at
Tue Nov 7 15:27:59 EST 2006
Log message for revision 71095:
added clean method
Changed:
U lovely.remotetask/trunk/src/lovely/remotetask/README.txt
U lovely.remotetask/trunk/src/lovely/remotetask/browser/README.txt
U lovely.remotetask/trunk/src/lovely/remotetask/browser/jobs.pt
U lovely.remotetask/trunk/src/lovely/remotetask/browser/service.py
U lovely.remotetask/trunk/src/lovely/remotetask/interfaces.py
U lovely.remotetask/trunk/src/lovely/remotetask/service.py
-=-
Modified: lovely.remotetask/trunk/src/lovely/remotetask/README.txt
===================================================================
--- lovely.remotetask/trunk/src/lovely/remotetask/README.txt 2006-11-07 15:18:04 UTC (rev 71094)
+++ lovely.remotetask/trunk/src/lovely/remotetask/README.txt 2006-11-07 20:27:59 UTC (rev 71095)
@@ -117,3 +117,18 @@
>>> dict(service.jobs)
{1: <Job 1>, 2: <Job 2>, 3: <Job 3>}
+
+
+To get rid of jobs not needed anymore one can use the clean method.
+
+ >>> jobid = service.add(u'echo', {'blah': 'blah'})
+ >>> sorted([job.status for job in service.jobs.values()])
+ ['cancelled', 'completed', 'error', 'queued']
+
+ >>> service.clean()
+
+ >>> sorted([job.status for job in service.jobs.values()])
+ ['queued']
+
+
+
Modified: lovely.remotetask/trunk/src/lovely/remotetask/browser/README.txt
===================================================================
--- lovely.remotetask/trunk/src/lovely/remotetask/browser/README.txt 2006-11-07 15:18:04 UTC (rev 71094)
+++ lovely.remotetask/trunk/src/lovely/remotetask/browser/README.txt 2006-11-07 20:27:59 UTC (rev 71095)
@@ -84,7 +84,7 @@
</tr>
...
-Finally, you can cancel scheduled jobs:
+You can cancel scheduled jobs:
>>> browser.getControl('Cancel').click()
>>> 'No jobs were selected.' in browser.contents
@@ -94,3 +94,9 @@
>>> browser.getControl('Cancel').click()
>>> 'Jobs were successfully cancelled.' in browser.contents
True
+
+You can also clean attic jobs:
+
+ >>> browser.getControl('Clean').click()
+ >>> 'Cleaned 1 Jobs' in browser.contents
+ True
Modified: lovely.remotetask/trunk/src/lovely/remotetask/browser/jobs.pt
===================================================================
--- lovely.remotetask/trunk/src/lovely/remotetask/browser/jobs.pt 2006-11-07 15:18:04 UTC (rev 71094)
+++ lovely.remotetask/trunk/src/lovely/remotetask/browser/jobs.pt 2006-11-07 20:27:59 UTC (rev 71095)
@@ -34,6 +34,13 @@
Something happened.
</div>
+ <div class="row">
+ <div class="controls">
+ <input type="submit" class="button" name="CLEAN" value="Clean"
+ i18n:attributes="value" />
+ </div>
+ </div>
+
<tal:block tal:replace="structure view/table" />
<div class="row">
Modified: lovely.remotetask/trunk/src/lovely/remotetask/browser/service.py
===================================================================
--- lovely.remotetask/trunk/src/lovely/remotetask/browser/service.py 2006-11-07 15:18:04 UTC (rev 71094)
+++ lovely.remotetask/trunk/src/lovely/remotetask/browser/service.py 2006-11-07 20:27:59 UTC (rev 71095)
@@ -78,6 +78,11 @@
self.status = 'Jobs were successfully cancelled.'
else:
self.status = u'No jobs were selected.'
+ elif 'CLEAN' in self.request:
+ jobs = len(list(self.context.jobs.keys()))
+ self.context.clean()
+ cleaned = jobs - len(list(self.context.jobs.keys()))
+ self.status = u'Cleaned %r Jobs' % cleaned
def __call__(self):
self.update()
Modified: lovely.remotetask/trunk/src/lovely/remotetask/interfaces.py
===================================================================
--- lovely.remotetask/trunk/src/lovely/remotetask/interfaces.py 2006-11-07 15:18:04 UTC (rev 71094)
+++ lovely.remotetask/trunk/src/lovely/remotetask/interfaces.py 2006-11-07 20:27:59 UTC (rev 71095)
@@ -45,6 +45,10 @@
arguments for the task.
"""
+ def clean():
+ """removes all jobs which are completed or canceled or have
+ errors"""
+
def cancel(jobid):
"""Cancel a particular job."""
Modified: lovely.remotetask/trunk/src/lovely/remotetask/service.py
===================================================================
--- lovely.remotetask/trunk/src/lovely/remotetask/service.py 2006-11-07 15:18:04 UTC (rev 71094)
+++ lovely.remotetask/trunk/src/lovely/remotetask/service.py 2006-11-07 20:27:59 UTC (rev 71095)
@@ -67,6 +67,15 @@
newjob.status = interfaces.QUEUED
return jobid
+ def clean(self):
+ """See interfaces.ITaskService"""
+ for key in list(self.jobs.keys()):
+ job = self.jobs[key]
+ if job.status in [interfaces.CANCELLED,
+ interfaces.ERROR,
+ interfaces.COMPLETED]:
+ del self.jobs[key]
+
def cancel(self, jobid):
"""See interfaces.ITaskService"""
for idx, job in enumerate(self._queue):
More information about the Checkins
mailing list