| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Change-Id: I4440b3299e5a03652ecedb834992fc75de11b15b
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
stable/juno was just created for taskflow from the 0.6.1 tag so that we
can cap networkx (and other requirements) for taskflow in Juno. This is
needed to unblock the gate-cinder-python26 job in Juno which uses
taskflow and with uncapped networkx, pulls in 1.10 which dropped py26
support.
As the first change to stable/juno for taskflow, this also updates
the .gitreview file.
Depends-On: I29aa97b542d82aabe770ad4431125ef5c67f6104
Closes-Bug: #1484267
Change-Id: Ie5fadc3f26b6897440023b2fdb47a07766061cbb
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The code we had for adjusting the netutils urlsplit
function to add in a params method/property is no
longer needed as that functionality is now pushed into
the oslo.utils repo/package where it can be maintained
there in a more proper manner instead; so we can now
remove our adjustment code and just use the upstream
code instead.
Change-Id: I5ca05c0ac6a6221157a737ba20814cfd63adf51e
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To enable a parallel process executor to be used without
having to pass in a futures executor allow for the executor
option to be a string 'processes' (or similar) that will cause
the default parallel process executor to be used automatically.
Also allow for a 'threads' string that ensure a parallel thread
executor is used to match the ability to uses processes.
This also adjusts the WBE engine to have a similar executor fetching
function (which in the WBE case now validates a provided executor to
be of the desired type).
Change-Id: I54a82584c32c697922507b4f6e01ea7b8acc73c6
|
| |/
|
|
|
|
|
|
| |
To avoid consistency/threading/runtime issues stop the action
engine executor from being started if it is already running with
a valid worker thread.
Change-Id: I39925e55e7b171f289152d941ebdf390552f880c
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of creating a temporary list of the node using
its __iter__() function and then reversing that list just
use the natively provided reverse_iter() method instead
that reduces this wasteful list copying and creating in
the first place.
Also does the same in the pformat() function which was
needlessly creating a temporary list of children nodes
instead of just using the nodes __iter__() functionality
directly.
Change-Id: Ice4001e6d014d2c0a1f7d8b916c60370fd5443a7
|
| |\ \ |
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of having many queues (one per task) just have a shared
one and use sender identifiers to know which originating task
to proxy back to.
This scales better and avoids the needless polling of many
queues for a potential message to emit (and can now instead
just poll one queue); when now we can just poll a single
queue for any messages (this does though remove the ability to
throttle messages from a given sender).
Change-Id: I3566a5ab20ad15a80a4c6969f48b076ddde1d7ac
|
| |\ \ |
|
| | |/
| |
| |
| |
| |
| |
| |
| | |
Watches are actually thread-safe as long as individual
watch objects are not shared across threads or the operations
on watches are protected by locks.
Change-Id: I3565e7b76ec0866bcbca8666bcdf727441e01b10
|
| |\ \
| |/
|/| |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Seems like we should have registered with 'ANY' since
otherwise if a cloned task emits a unknown notification
then the 'ANY' event should be triggered instead of not
being emitted.
Change-Id: Iedd3c0eb034043ba8e5b9e9a02a6e49c451e17b3
|
| |\ \ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The implementation of __str__ does not provide much
useful information so instead just prefer the automatically
provided one which provides equivalent information in
a more well known format...
Change-Id: I0a1683cfc22df1888a19f5af10d7a343462d3994
|
| |\ \ \
| |/ /
|/| | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of not calling the 'on_exit' of the initialized
and/or starting state we should make an attempt to call
it if a function exists/was provided. This function will
be called on the first event to be processed (which will
cause the state machine to transition out of the starting
state to a new stable state).
Fixes bug 1404124
Change-Id: I037439313f9071af23c0859a62832d735f9abcd8
|
| |\ \ \ |
|
| | | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Ensure that when the task executor is started that we
correctly create a new multiprocessing manager (if needed)
and that on stop we correctly shut that manager down and
join it.
Also does a tiny adjustment to the joinable work item to
move the finish logic into its own method and ensures that
we have no targets on reset of the dispatcher.
Change-Id: I688df323fb24a7e228f4fa237f2fa772d9c0dc62
|
| |\ \ \ |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of converting the namedtuple that the future wait
function returns into a normal tuple, just have our own
internal functions use the futures namedtuple directly instead
and avoid any conversion to/from that namedtuple into a normal
tuple.
Change-Id: I54b2595af8d58db60843195034d66a623c20277c
|
| |\ \ \ \ |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Tasks support a notification like channel that they can use
to emit information that has occurred internal to then be
received by any attached listeners. This kind of notification
even works when ran remotely; so this example shows how to use
that system to do something useful.
Part of blueprint more-examples
Change-Id: I104fa55e6b511df77464e3b89ee2bad6438482dd
|
| |\ \ \ \ \ |
|
| | | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Since the scoping is an action_engine implementation detail
its test should belong in the action_engine test cases folder
instead of being at the top level unit test folder.
Change-Id: Ic436c534103d1d9fafad95299bd2632cc7ee5634
|
| |\ \ \ \ \
| |_|_|_|/
|/| | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Change-Id: I1d6e6535ab09d7f6c9d9ca3e2663983644b7a8a1
|
| |\ \ \ \ \
| |/ / / /
| | | | /
| |_|_|/
|/| | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In order to support tasks notifications and progress
updates we need to establish a channel & proxy by which
those events can be sent from the process executing and
producing those events and the originating process that
requested that task to be executed.
This review adds on such a proxy and adjusts a cloned tasks
notification callbacks to place messages on a queue that will
be picked up by a thread in the originating process for dispatch
to the original callbacks that were registered with the non-cloned
task (therefore making the original callbacks appear to be called
as they are supposed to be).
Part of blueprint process-executor
Change-Id: I01c83f13186e4be9fa28c32e34e907bb133e8fb3
|
| |\ \ \ \
| |/ / /
| | / /
| |/ /
|/| | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since we support various executors (threaded and distributed)
the next best executor when a threaded executor will not perform
and a distributed one requires to much setup is a local process
based one so it would be great to support this where we can.
Things that are currently (likely never) not going to work:
* Non-pickleable/non-copyable tasks
* Tasks that return non-pickleable/non-copyable results
* Tasks that use non-pickleable/non-copyable args/kwargs
Part of blueprint process-executor
Change-Id: I966ae01d390c7217b858db3feb2db949ce5c08d1
|
| |\ \ \ |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The reflection module is now part of oslo.utils so we should
remove our local version and use that version instead; this
also goes for the uuidutils module which is now part of
oslo.utils as well so we no longer need our local version
copied from the incubator...
Note that one reflection method `find_subclasses` which was to
specific to taskflow is now moved to the misc utility module
instead of its prior home in the reflection module.
Change-Id: I069881c80b0b2916cc0c414992b80171f7eeb79f
|
| |\ \ \ \
| |_|/ /
|/| | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
A new simple example that is pretty easy to follow that does
a embarrassingly parallel computation on some input table to
create a new output table (by performing a multiplication on
each cell in that source table to create a new table).
Part of blueprint more-examples
Change-Id: I2684f39b3525ee2d43a03ab353d029fdc0e1b2a1
|
| |\ \ \ \
| |_|/ /
|/| | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since we can create tasks, run them in a parallel then direct
there result into a result task we can create a workflow that
can define how this can be accomplished and have the map ops
run in parallel (with the reduction op happening after all the
map ops have finished).
Part of blueprint more-examples
Change-Id: I7c04f5508b35b945c49e5798ece0e298d2e1b979
|
| |\ \ \ \ |
|
| | | |_|/
| |/| |
| | | |
| | | | |
Change-Id: I9bbf5d9082e4e6ee9283c7e11ed0b2474a4e070a
|
| |\ \ \ \ |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Instead of using the less explicit **kwarg support when adding
an edge between a explicit producer and consumer use the 'attr_dict'
keyword argument instead and use the constant defined the the flow
module as the key into that dictionary (this also ensure that the
key will be adjusted automatically if that key value ever changes).
Change-Id: Ieeae83b984b7797320997c0c4cb4289eb1a837ee
|
| |\ \ \ \ \ |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When a retry object is asked to make a decision about the atoms
it controls it is currently provided a complex object that contains
what has failed and why and what was provided to try to resolve this
failure as raw types. To make it easier to interact with that history
provide and use a more easier to interact with helper object that
provides useful functionality built ontop of the raw types.
Part of blueprint intuitive-retries
Change-Id: I93f86552f5a0c26b269319e4de6d9b8fb3b3b219
|
| |\ \ \ \ \ \ |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The sqlalchemy versions we are using/supporting (0.6+)
have the detection of the mysql mode built-in so only
activate the connect setting if we are somehow overriden
by a user who knows what they are doing.
Fixes bug 1396278
Change-Id: If2226d3e9f921a1c5f62a6727016fe86cd50a9b5
|
| |\ \ \ \ \ \ \ |
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
This fixes some of the old links to classes that
have been moved, or split, fixes some of the sphinx
warnings that were being output and cleans up the
reference to deprecated properties.
Change-Id: Ib930c54bcdf15876093cbe5b6527a195b9594f40
|
| |\ \ \ \ \ \ \ \ |
|
| | | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Instead of having the copyright date be statically
encoded to '2013-2014' have it be dynamically picked
up from the datetime module instead.
Change-Id: Ie8a4ab02b7b2c254eb63a0b43763c9893f7fa083
|