diff options
author | Dan Krause <dan.krause@rackspace.com> | 2015-03-09 14:09:55 -0500 |
---|---|---|
committer | Dan Krause <dan.krause@rackspace.com> | 2015-03-11 10:13:56 -0500 |
commit | 8e624839c07553931d39567e4e778838bc55d7a1 (patch) | |
tree | 36814a62bfe628d21c1d1cbe2328763863669352 /taskflow/conductors | |
parent | c4414a733d4b97f9f12db5d27c64e713b8466b75 (diff) | |
download | taskflow-8e624839c07553931d39567e4e778838bc55d7a1.tar.gz |
add _listeners_from_job method to Conductor base
Change-Id: I4a58c2fd5a0c648ffe3f81e2170a622b6b0b43f0
Diffstat (limited to 'taskflow/conductors')
-rw-r--r-- | taskflow/conductors/base.py | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/taskflow/conductors/base.py b/taskflow/conductors/base.py index 48344c5..33c4441 100644 --- a/taskflow/conductors/base.py +++ b/taskflow/conductors/base.py @@ -88,10 +88,28 @@ class Conductor(object): store = dict(job.details["store"]) else: store = {} - return engines.load_from_detail(flow_detail, store=store, - engine=self._engine, - backend=self._persistence, - **self._engine_options) + engine = engines.load_from_detail(flow_detail, store=store, + engine=self._engine, + backend=self._persistence, + **self._engine_options) + for listener in self._listeners_from_job(job, engine): + listener.register() + return engine + + def _listeners_from_job(self, job, engine): + """Returns a list of listeners to be attached to an engine. + + This method should be overridden in order to attach listeners to + engines. It will be called once for each job, and the list returned + listeners will be added to the engine for this job. + + :param job: A job instance that is about to be run in an engine. + :param engine: The engine that listeners will be attached to. + :returns: a list of (unregistered) listener instances. + """ + # TODO(dkrause): Create a standard way to pass listeners or + # listener factories over the jobboard + return [] @lock_utils.locked def connect(self): |