summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Updated from global requirementsjuno-eolstable/junoOpenStack Proposal Bot2015-08-150-0/+0
| | | | Change-Id: I4440b3299e5a03652ecedb834992fc75de11b15b
* Update from global requirements0.6.2Doug Hellmann2015-08-135-28/+28
| | | | | | | | | | | | | | | | | 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
* Remove need to inherit/adjust netutils split0.6.1Joshua Harlow2015-01-052-23/+3
| | | | | | | | | | | | 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
* Merge "Allow specifying the engine 'executor' as a string"Jenkins2015-01-055-61/+246
|\
| * Allow specifying the engine 'executor' as a stringJoshua Harlow2015-01-015-61/+246
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Disallowing starting the executor when worker runningJoshua Harlow2014-12-311-6/+8
|/ | | | | | | | 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
* Merge "Avoid creating a temporary list(s) for tree type"Jenkins2015-01-011-5/+4
|\
| * Avoid creating a temporary list(s) for tree typeJoshua Harlow2014-12-291-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge "Use a single shared queue for an executors lifecycle"Jenkins2015-01-011-158/+186
|\ \
| * | Use a single shared queue for an executors lifecycleJoshua Harlow2014-12-311-158/+186
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge "Update statement around stopwatch thread safety"Jenkins2014-12-311-1/+4
|\ \
| * | Update statement around stopwatch thread safetyJoshua Harlow2014-12-271-1/+4
| |/ | | | | | | | | | | | | | | 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
* | Merge "Register with 'ANY' in the cloned process"Jenkins2014-12-311-4/+0
|\ \ | |/ |/|
| * Register with 'ANY' in the cloned processJoshua Harlow2014-12-251-4/+0
| | | | | | | | | | | | | | | | | | 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
* | Merge "Remove less than useful action_engine __str__"Jenkins2014-12-222-10/+6
|\ \
| * | Remove less than useful action_engine __str__Joshua Harlow2014-12-212-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge "Correctly trigger 'on_exit' of starting/initial state"Jenkins2014-12-222-2/+9
|\ \ \ | |/ / |/| |
| * | Correctly trigger 'on_exit' of starting/initial stateJoshua Harlow2014-12-182-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge "Ensure manager started/shutdown/joined and reset"Jenkins2014-12-211-6/+23
|\ \ \
| * | | Ensure manager started/shutdown/joined and resetJoshua Harlow2014-12-211-6/+23
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge "Return the same namedtuple that the future module returns"Jenkins2014-12-211-15/+18
|\ \ \
| * | | Return the same namedtuple that the future module returnsJoshua Harlow2014-12-211-15/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge "Add an example which shows how to send events out from tasks"Jenkins2014-12-212-0/+160
|\ \ \ \
| * | | | Add an example which shows how to send events out from tasksJoshua Harlow2014-12-182-0/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | Merge "Move the engine scoping test to its engines test folder"Jenkins2014-12-211-0/+0
|\ \ \ \ \
| * | | | | Move the engine scoping test to its engines test folderJoshua Harlow2014-12-201-0/+0
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | Merge "Add a simplistic hello world example"Jenkins2014-12-212-0/+122
|\ \ \ \ \ | |_|_|_|/ |/| | | |
| * | | | Add a simplistic hello world exampleJoshua Harlow2014-12-212-0/+122
| | | | | | | | | | | | | | | | | | | | Change-Id: I1d6e6535ab09d7f6c9d9ca3e2663983644b7a8a1
* | | | | Merge "Get event/notification sending working correctly"Jenkins2014-12-215-12/+444
|\ \ \ \ \ | |/ / / / | | | | / | |_|_|/ |/| | |
| * | | Get event/notification sending working correctlyJoshua Harlow2014-12-205-12/+444
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge "Get the basics of a process executor working"Jenkins2014-12-208-39/+147
|\ \ \ \ | |/ / / | | / / | |/ / |/| |
| * | Get the basics of a process executor workingJoshua Harlow2014-12-198-39/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge "Move over to using oslo.utils [reflection, uuidutils]"0.6.0Jenkins2014-12-1842-608/+91
|\ \ \
| * | | Move over to using oslo.utils [reflection, uuidutils]Joshua Harlow2014-12-1842-608/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge "Add a parallel table mutation example"Jenkins2014-12-182-0/+141
|\ \ \ \ | |_|/ / |/| | |
| * | | Add a parallel table mutation exampleJoshua Harlow2014-12-172-0/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge "Add a basic map/reduce example to show how this can be done"Jenkins2014-12-182-0/+127
|\ \ \ \ | |_|/ / |/| | |
| * | | Add a basic map/reduce example to show how this can be doneJoshua Harlow2014-12-172-0/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge "Updated from global requirements"Jenkins2014-12-181-1/+1
|\ \ \ \
| * | | | Updated from global requirementsOpenStack Proposal Bot2014-12-181-1/+1
| | |_|/ | |/| | | | | | | | | | Change-Id: I9bbf5d9082e4e6ee9283c7e11ed0b2474a4e070a
* | | | Merge "Use explict 'attr_dict' when adding provider->consumer edge"Jenkins2014-12-181-5/+10
|\ \ \ \
| * | | | Use explict 'attr_dict' when adding provider->consumer edgeJoshua Harlow2014-12-111-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | Merge "Add a history retry object, makes retry histories easier to use"Jenkins2014-12-185-40/+126
|\ \ \ \ \
| * | | | | Add a history retry object, makes retry histories easier to useJoshua Harlow2014-11-195-40/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | Merge "Remove default setting of 'mysql_traditional_mode'"Jenkins2014-12-181-2/+0
|\ \ \ \ \ \
| * | | | | | Remove default setting of 'mysql_traditional_mode'Joshua Harlow2014-11-251-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | | Merge "Cleanup some doc warnings/bad/broken links"Jenkins2014-12-183-17/+33
|\ \ \ \ \ \ \
| * | | | | | | Cleanup some doc warnings/bad/broken linksJoshua Harlow2014-12-153-17/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | | | Merge "Have the sphinx copyright date be dynamic"Jenkins2014-12-181-1/+2
|\ \ \ \ \ \ \ \
| * | | | | | | | Have the sphinx copyright date be dynamicJoshua Harlow2014-12-081-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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