[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