<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/openstack/taskflow.git/taskflow/engines/action_engine, branch master</title>
<subtitle>opendev.org: openstack/taskflow.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/taskflow.git/'/>
<entry>
<title>Merge "Quote string representations"</title>
<updated>2022-06-13T16:32:31+00:00</updated>
<author>
<name>Zuul</name>
<email>zuul@review.opendev.org</email>
</author>
<published>2022-06-13T16:32:31+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=6dfc18013a2570c839828d6d879a9ab6a4964d91'/>
<id>6dfc18013a2570c839828d6d879a9ab6a4964d91</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Quote string representations</title>
<updated>2022-06-10T09:45:32+00:00</updated>
<author>
<name>Michael Johnson</name>
<email>johnsomor@gmail.com</email>
</author>
<published>2022-06-09T18:02:21+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=2521e3ee00d91d4002b751ecea06906fdf1c9b0e'/>
<id>2521e3ee00d91d4002b751ecea06906fdf1c9b0e</id>
<content type='text'>
networkx 2.8.3 will raise errors if certain characters, such as a colon, in the node names and the string is not quoted.
This patch double quotes flow, node, and task string representations to make sure there are not issues with these characters occuring in the names.

Story: 2010083
Change-Id: Ib0941cddf14dde5d6b9f97fe0224d6e6f3975226
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
networkx 2.8.3 will raise errors if certain characters, such as a colon, in the node names and the string is not quoted.
This patch double quotes flow, node, and task string representations to make sure there are not issues with these characters occuring in the names.

Story: 2010083
Change-Id: Ib0941cddf14dde5d6b9f97fe0224d6e6f3975226
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove six</title>
<updated>2022-05-18T07:12:37+00:00</updated>
<author>
<name>Takashi Kajinami</name>
<email>tkajinam@redhat.com</email>
</author>
<published>2022-05-17T13:56:45+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=44f17d005ff53008144ca7c509bcb1307d66b23f'/>
<id>44f17d005ff53008144ca7c509bcb1307d66b23f</id>
<content type='text'>
This library no longer supports Python 2, thus usage of six can be
removed. This also removes workaround about pickle library used in
Python 2 only.

Change-Id: I19d298cf0f402d65f0b142dea0bf35cf992332a9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This library no longer supports Python 2, thus usage of six can be
removed. This also removes workaround about pickle library used in
Python 2 only.

Change-Id: I19d298cf0f402d65f0b142dea0bf35cf992332a9
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix minor typo in ActionEngine exception message</title>
<updated>2021-12-02T22:38:47+00:00</updated>
<author>
<name>Eric Harney</name>
<email>eharney@redhat.com</email>
</author>
<published>2021-12-02T22:38:47+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=8d506c30d621d21d9fcab8b84b6b6299d7bb6693'/>
<id>8d506c30d621d21d9fcab8b84b6b6299d7bb6693</id>
<content type='text'>
Change-Id: I66b9937df5c58561792328e08f836dc05927e7f1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I66b9937df5c58561792328e08f836dc05927e7f1
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Update TaskFlow for networkx 2.x"</title>
<updated>2019-11-15T04:24:16+00:00</updated>
<author>
<name>Zuul</name>
<email>zuul@review.opendev.org</email>
</author>
<published>2019-11-15T04:24:16+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=0b352712afd744ac3a2c629470f3130ca6087c1b'/>
<id>0b352712afd744ac3a2c629470f3130ca6087c1b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update TaskFlow for networkx 2.x</title>
<updated>2019-10-19T01:11:44+00:00</updated>
<author>
<name>Michael Johnson</name>
<email>johnsomor@gmail.com</email>
</author>
<published>2019-10-19T01:02:58+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=dc6495cfa1c8e1dc95bad554a55f0b4e8e360abe'/>
<id>dc6495cfa1c8e1dc95bad554a55f0b4e8e360abe</id>
<content type='text'>
The networkx 2.x series has been out for two years now and supports
python 3.6 and greater[1]. This patch updates TaskFlow to require
a minimum of networkx 2.1. It also updates the code to support
recent deprecation expiration introduced in the 2.4 release.

[1] https://networkx.github.io/documentation/stable/news.html

Change-Id: Ife31d353ba80824ebc63c8b21ee90943badc8da3
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The networkx 2.x series has been out for two years now and supports
python 3.6 and greater[1]. This patch updates TaskFlow to require
a minimum of networkx 2.1. It also updates the code to support
recent deprecation expiration introduced in the 2.4 release.

[1] https://networkx.github.io/documentation/stable/news.html

Change-Id: Ife31d353ba80824ebc63c8b21ee90943badc8da3
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix python3.8 hmac compatibility</title>
<updated>2019-09-03T21:41:28+00:00</updated>
<author>
<name>Eric Harney</name>
<email>eharney@redhat.com</email>
</author>
<published>2019-09-03T21:41:28+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=433659932b7c45966ddb63ee26911c6a5c7f4725'/>
<id>433659932b7c45966ddb63ee26911c6a5c7f4725</id>
<content type='text'>
The "digestmod" parameter must be passed in for Python 3.8.

md5 was chosen here because this is what was implicitly used
for Python &lt; 3.8.

Change-Id: I17eca0692c4a89ff90cfa9d4ef3947d2c9ee23e7
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The "digestmod" parameter must be passed in for Python 3.8.

md5 was chosen here because this is what was implicitly used
for Python &lt; 3.8.

Change-Id: I17eca0692c4a89ff90cfa9d4ef3947d2c9ee23e7
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix process based executor task proxying-back events</title>
<updated>2017-07-11T03:14:04+00:00</updated>
<author>
<name>Joshua Harlow</name>
<email>harlowja@yahoo-inc.com</email>
</author>
<published>2016-01-25T23:56:07+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=84c7a7b2c7dcbade1bc802cac7c93ccd9b746cb3'/>
<id>84c7a7b2c7dcbade1bc802cac7c93ccd9b746cb3</id>
<content type='text'>
Let's dive into what the problem is here.

First a description of what happens to a task that
is to be executed in a external (but local) process
via the process executor mechanism.

When a task is about to be sent to execute in the
external (but local) process its first cloned, this
is mainly done so that its notification callbacks can
be altered in a safe manner (ie not altering the
original task object to do this) and that clone has
its notifier emptied out.

What replaces the clone's notifier callbacks though
is a new object (that has a __call__ method so it
looks like just another callback) that will send
messages to the parent process (the one that has
the engine in it) over a secure(ish) channel whenever
the local task triggers its notifier notify() method.

This allows for callbacks in the parent process to
get triggered because once the messages recieved the
original tasks notifier object has its notify() method
called (therefore those callbacks do not really know
the task they are getting messages from is executing out
of process).

The issue though is that if the ANY(*) event type is registered
due to how it works in the notifier is that if the child/cloned
notifier has the ANY event type registered and the cloned task
calls notify() with a specific event this will cause the ANY
callback (in the clone) to transmit a message *and* it will
cause the *specific* event callback to also transmit a message
back to the parent process.

On the engine process side it will get 2 messages and trigger
the callbacks 3 times (twice for the specific event callback
because how the local notifier has the ANY callback registered
and one more time when the local process also sends the same
event based on its registration of the ANY event in the child
process).

This is not what is expected (the message rcved on the engine
process should only trigger one callback to get triggered
if the engine process task has no ANY callback registered or two
engine process callbacks to get triggered if the engine process
task has the ANY callback registered).

Closes-Bug: #1537948

Change-Id: I271bf1f23ad73df6c177cf00fd902c4881ba44ae
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Let's dive into what the problem is here.

First a description of what happens to a task that
is to be executed in a external (but local) process
via the process executor mechanism.

When a task is about to be sent to execute in the
external (but local) process its first cloned, this
is mainly done so that its notification callbacks can
be altered in a safe manner (ie not altering the
original task object to do this) and that clone has
its notifier emptied out.

What replaces the clone's notifier callbacks though
is a new object (that has a __call__ method so it
looks like just another callback) that will send
messages to the parent process (the one that has
the engine in it) over a secure(ish) channel whenever
the local task triggers its notifier notify() method.

This allows for callbacks in the parent process to
get triggered because once the messages recieved the
original tasks notifier object has its notify() method
called (therefore those callbacks do not really know
the task they are getting messages from is executing out
of process).

The issue though is that if the ANY(*) event type is registered
due to how it works in the notifier is that if the child/cloned
notifier has the ANY event type registered and the cloned task
calls notify() with a specific event this will cause the ANY
callback (in the clone) to transmit a message *and* it will
cause the *specific* event callback to also transmit a message
back to the parent process.

On the engine process side it will get 2 messages and trigger
the callbacks 3 times (twice for the specific event callback
because how the local notifier has the ANY callback registered
and one more time when the local process also sends the same
event based on its registration of the ANY event in the child
process).

This is not what is expected (the message rcved on the engine
process should only trigger one callback to get triggered
if the engine process task has no ANY callback registered or two
engine process callbacks to get triggered if the engine process
task has the ANY callback registered).

Closes-Bug: #1537948

Change-Id: I271bf1f23ad73df6c177cf00fd902c4881ba44ae
</pre>
</div>
</content>
</entry>
<entry>
<title>python3.0 has deprecated LOG.warn</title>
<updated>2017-03-07T09:29:26+00:00</updated>
<author>
<name>xhzhf</name>
<email>guoyongxhzhf@163.com</email>
</author>
<published>2016-12-18T00:30:51+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=4e0125e4e52e67af0bf1bd84244fb6cb80e09abf'/>
<id>4e0125e4e52e67af0bf1bd84244fb6cb80e09abf</id>
<content type='text'>
python3.0 has deprecated LOG.warn
https://docs.python.org/3/library/logging.html#logging.warning
Closes-Bug: #1650843

Change-Id: Ib8473cbdb84547f385e619fe08ed723b1ee7bcdb
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
python3.0 has deprecated LOG.warn
https://docs.python.org/3/library/logging.html#logging.warning
Closes-Bug: #1650843

Change-Id: Ib8473cbdb84547f385e619fe08ed723b1ee7bcdb
</pre>
</div>
</content>
</entry>
<entry>
<title>Protect storage better against external concurrent access</title>
<updated>2017-01-09T12:51:44+00:00</updated>
<author>
<name>Joshua Harlow</name>
<email>jxharlow@godaddy.com</email>
</author>
<published>2016-06-15T00:13:37+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=22f75755b744c220b8dfd085dbb39e838d58f051'/>
<id>22f75755b744c220b8dfd085dbb39e838d58f051</id>
<content type='text'>
Lock down the various state machine action handling
functions so that they are ensured correct (and consistent)
access to the storage layer when they are modifiying and/or
reading it.

Change-Id: Ie893a44aa963ab515f19e77f9904f49c843cb4e5
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Lock down the various state machine action handling
functions so that they are ensured correct (and consistent)
access to the storage layer when they are modifiying and/or
reading it.

Change-Id: Ie893a44aa963ab515f19e77f9904f49c843cb4e5
</pre>
</div>
</content>
</entry>
</feed>
