[Checkins] SVN: lovely.remotetask/trunk/ - version to 0.3
Christian Zagrodnick
cz at gocept.com
Sun Apr 5 10:23:40 EDT 2009
Log message for revision 98870:
- version to 0.3
- added long_description
- REST syntax fixes
Changed:
U lovely.remotetask/trunk/CHANGES.txt
U lovely.remotetask/trunk/setup.py
U lovely.remotetask/trunk/src/lovely/remotetask/README.txt
-=-
Modified: lovely.remotetask/trunk/CHANGES.txt
===================================================================
--- lovely.remotetask/trunk/CHANGES.txt 2009-04-05 14:22:47 UTC (rev 98869)
+++ lovely.remotetask/trunk/CHANGES.txt 2009-04-05 14:23:39 UTC (rev 98870)
@@ -3,7 +3,7 @@
=============================
2009/01/28 (...):
-=================
+-----------------
- Use dropdown widget with available tasks in the cron job
adding form, instead of text input.
@@ -22,19 +22,19 @@
2008/11/07 0.2.15a1:
-====================
+--------------------
- running could cause an AttributeError. added handling for it
2008/02/08 0.2.14:
-==================
+------------------
- commiting after each 100 jobs during 'clearAll' to avoid browser timeouts
while canceling a huge amount of jobs
2008/01/28 (new):
-=================
+-----------------
- Some bugs smashed, improved tests.
@@ -43,7 +43,7 @@
2007/12/?? (new):
-=================
+-----------------
- Switched index to Zope 3.4 KGS, so that we agree on used package versions.
@@ -56,14 +56,14 @@
2007/11/12 0.2.13:
-==================
+------------------
- added "cancel all" button
- fixed bug in associating threads with task service instances
2007/10/28 0.2.12:
-==================
+------------------
- make the startup more robust
If an already registered task service is remove via ZMI it's registration is
@@ -72,7 +72,7 @@
2007/10/28 0.2.11:
-==================
+------------------
- allow '*' to select all possible times in the cron job add/edit forms
@@ -80,25 +80,25 @@
2007/10/24 0.2.10:
-==================
+------------------
- avoided deprecation warnings
2007/10/08 0.2.9:
-=================
+-----------------
- don't push a cron job back into the queue if it's status is ERROR
2007/10/08 0.2.8:
-=================
+-----------------
- enhanced logging during startup
2007/10/02 0.2.7:
-=================
+-----------------
- added index to buildout.cfg
- enhanced autostart behaviour: Services can be started like: site@*,
@@ -106,25 +106,25 @@
2007/08/07 0.2.6:
-=================
+-----------------
- fix bug in sorting that causes column headers to never be clickable
2007/08/07 0.2.5:
-=================
+-----------------
- no longer require session support for "Jobs" ZMI view
2007/08/06 0.2.4:
-=================
+-----------------
- fix bug that caused processing thread to keep the process alive unnecessarily
2007/07/26 0.2.3:
-=================
+-----------------
- Now handles the use-case where a task service is registered directly at the
root. References to such services in the product configuration must begin
@@ -132,7 +132,7 @@
2007/07/02 0.2.2:
-=================
+-----------------
- ZMI menu to add cron jobs to a task service
- named detail views can be registered for jobs specific to the task
@@ -143,14 +143,14 @@
2007/06/12 0.2.1:
-=================
+-----------------
- Do not raise IndexError because of performance problems with tracebacks when
using eggs.
2007/06/12 0.2.0:
-=================
+-----------------
- added namespace declaration in lovely/__init__.py
- allow to delay a job
Modified: lovely.remotetask/trunk/setup.py
===================================================================
--- lovely.remotetask/trunk/setup.py 2009-04-05 14:22:47 UTC (rev 98869)
+++ lovely.remotetask/trunk/setup.py 2009-04-05 14:23:39 UTC (rev 98870)
@@ -1,12 +1,22 @@
#!python
from setuptools import setup, find_packages
+import os.path
+
+def read(*names):
+ return open(os.path.join(os.path.dirname(__file__), *names)).read()
+
+
setup (
name='lovely.remotetask',
- version='0.2.15a1',
+ version='0.3dev',
author = "Lovely Systems",
author_email = "office at lovelysystems.com",
description = "A remotetask client utiltiy for zope 3",
+ long_description=(
+ read('src', 'lovely', 'remotetask', 'README.txt')
+ + '\n\n'
+ + read('CHANGES.txt')),
license = "ZPL 2.1",
keywords = "zope3 zope remotetask cache ram",
url = 'http://pypi.python.org/pypi/lovely.remotetask',
Modified: lovely.remotetask/trunk/src/lovely/remotetask/README.txt
===================================================================
--- lovely.remotetask/trunk/src/lovely/remotetask/README.txt 2009-04-05 14:22:47 UTC (rev 98869)
+++ lovely.remotetask/trunk/src/lovely/remotetask/README.txt 2009-04-05 14:23:39 UTC (rev 98870)
@@ -2,6 +2,8 @@
Remote Task Execution
=====================
+.. contents::
+
This package provides an implementation of a remote task execution Web service
that allows to execute pre-defined tasks on another server. It is also
possible to run cron jobs at specific times. Those services are useful in two
@@ -151,7 +153,7 @@
registered at the root. We test this use-case in a separate footnote so that
the flow of this document is not broken. [#1]_
-To get a clean logging environment let's clear the logging stack::
+To get a clean logging environment let's clear the logging stack:
>>> log_info.clear()
@@ -166,7 +168,7 @@
>>> conn.root()[ZopePublication.root_name] = root
>>> transaction.commit()
-Fire the event::
+Fire the event:
>>> from zope.app.appsetup.interfaces import DatabaseOpenedWithRoot
>>> from lovely.remotetask.service import bootStrapSubscriber
@@ -178,7 +180,7 @@
>>> service.isProcessing()
True
-Checking out the logging will prove the started service::
+Checking out the logging will prove the started service:
>>> print log_info
lovely.remotetask INFO
@@ -195,9 +197,9 @@
To deal with a lot of services in one sites it will be possible to use
asterisks (*) to start services. In case of using site@* means start all
-services in that site::
+services in that site:
-But first stop all processing services::
+But first stop all processing services:
>>> service.stopProcessing()
>>> service.isProcessing()
@@ -209,18 +211,18 @@
>>> import time; time.sleep(STOP_SLEEP_TIME)
-And reset the logger::
+And reset the logger:
>>> log_info.clear()
-Reset the product configuration with the asterisked service names::
+Reset the product configuration with the asterisked service names:
>>> config.mapping['autostart'] = 'site1@*'
>>> setProductConfigurations([config])
>>> getAutostartServiceNames()
['site1@*']
-Firing the event again will start all services in the configured site::
+Firing the event again will start all services in the configured site:
>>> bootStrapSubscriber(event)
@@ -230,7 +232,7 @@
>>> root_service.isProcessing()
False
-Let's checkout the logging::
+Let's checkout the logging:
>>> print log_info
lovely.remotetask INFO
@@ -240,7 +242,7 @@
To deal with a lot of services in a lot of sites it possible to use
asterisks (*) to start services. In case of using *@* means start all
-services on all sites::
+services on all sites:
>>> service.stopProcessing()
>>> service.isProcessing()
@@ -248,18 +250,18 @@
>>> import time; time.sleep(STOP_SLEEP_TIME)
-Reset the product configuration with the asterisked service names::
+Reset the product configuration with the asterisked service names:
>>> config.mapping['autostart'] = '*@*'
>>> setProductConfigurations([config])
>>> getAutostartServiceNames()
['*@*']
-...and reset the logger::
+...and reset the logger:
>>> log_info.clear()
-And fire the event again. All services should be started now::
+And fire the event again. All services should be started now:
>>> bootStrapSubscriber(event)
@@ -269,7 +271,7 @@
>>> root_service.isProcessing()
True
-Let's check the logging::
+Let's check the logging:
>>> print log_info
lovely.remotetask INFO
@@ -281,8 +283,8 @@
To deal with a specific service in a lot of sites it possible to use
-asterisks (*) to start services. In case of using *@service means start the
-service called `service` on all sites::
+asterisks (*) to start services. In case of using \*@service means start the
+service called `service` on all sites:
>>> service.stopProcessing()
>>> service.isProcessing()
@@ -294,18 +296,18 @@
>>> import time; time.sleep(STOP_SLEEP_TIME)
-Reset the product configuration with the asterisked service names::
+Reset the product configuration with the asterisked service names:
>>> config.mapping['autostart'] = '*@TestTaskService1'
>>> setProductConfigurations([config])
>>> getAutostartServiceNames()
['*@TestTaskService1']
-...and reset the logger::
+...and reset the logger:
>>> log_info.clear()
-And fire the event again. All services should be started now::
+And fire the event again. All services should be started now:
>>> bootStrapSubscriber(event)
@@ -315,7 +317,7 @@
>>> root_service.isProcessing()
False
-Let's checkout the logging::
+Let's checkout the logging:
>>> print log_info
lovely.remotetask INFO
@@ -324,7 +326,7 @@
service TestTaskService1 on site site1 started
In case of configuring a directive which does not match any service on
-any site logging will show a warning message::
+any site logging will show a warning message:
>>> service.stopProcessing()
>>> service.isProcessing()
@@ -605,7 +607,7 @@
the database.
Let's start the task services we have defined at this point, and see
-what threads are running as a result::
+what threads are running as a result:
>>> service.startProcessing()
>>> root_service.startProcessing()
@@ -624,7 +626,7 @@
<Thread(remotetasks.site1.++etc++site.default.testTaskService1, started daemon)>]
Let's add a second site containing a task service with the same name as the
-service in the first site::
+service in the first site:
>>> site2 = Folder()
>>> service2 = remotetask.TaskService()
@@ -636,18 +638,18 @@
>>> sm['default']['testTaskService1'] = service2
>>> service2 = sm['default']['testTaskService1'] # caution! proxy
-Let's register it under the name `TestTaskService1`::
+Let's register it under the name `TestTaskService1`:
>>> sm = site2.getSiteManager()
>>> sm.registerUtility(
... service2, interfaces.ITaskService, name='TestTaskService1')
The service requires that it's been committed to the database before it can
-be used::
+be used:
>>> transaction.commit()
-The new service isn't currently processing::
+The new service isn't currently processing:
>>> service2.isProcessing()
False
@@ -662,7 +664,7 @@
<Thread(remotetasks.site2.++etc++site.default.testTaskService1, started daemon)>]
Let's stop the services, and give the background threads a chance to get the
-message::
+message:
>>> service.stopProcessing()
>>> service2.stopProcessing()
@@ -670,7 +672,7 @@
>>> import time; time.sleep(STOP_SLEEP_TIME)
-The threads have exited now::
+The threads have exited now:
>>> print [t for t in threading.enumerate()
... if t.getName().startswith('remotetasks.')]
@@ -688,7 +690,7 @@
>>> component.provideUtility(root_service, interfaces.ITaskService,
... name='RootTaskService')
- The object should be located, so it get's a name::
+ The object should be located, so it get's a name:
>>> root['rootTaskService'] = root_service
>>> root_service = root['rootTaskService'] # caution! proxy
@@ -750,4 +752,4 @@
>>> verifyObject(interfaces.ICronJob, fakecronjob)
True
>>> interfaces.IJob.providedBy(fakecronjob)
- True
\ No newline at end of file
+ True
More information about the Checkins
mailing list