)]}'
{"id":"openstack%2Ftaskflow~267188","triplet_id":"openstack%2Ftaskflow~master~Ib482dd68480910b9db7b96d4c7b06ab7f4022d56","project":"openstack/taskflow","branch":"master","topic":"bp/separate-revert-args","hashtags":[],"change_id":"Ib482dd68480910b9db7b96d4c7b06ab7f4022d56","subject":"Separate execute and revert arg mapping (WIP)","status":"ABANDONED","created":"2016-01-13 21:38:23.000000000","updated":"2016-01-21 15:11:48.000000000","total_comment_count":3,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"286e4c9d125f43b5bf48b0aea6e419273f6da314","_number":267188,"virtual_id_number":267188,"owner":{"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"date":"2016-01-14 14:43:04.000000000","_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},{"date":"2016-01-14 00:32:56.000000000","_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":1,"date":"2016-01-13 23:37:27.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{"-2":"Do Not Backport","-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport","+2":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2016-01-13 23:37:27.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"},{"updated":"2016-01-14 00:32:56.000000000","updated_by":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"reviewer":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"state":"REVIEWER"}],"messages":[{"id":"123d382d3534d1270bc8ce329a050ab0220c504a","author":{"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},"date":"2016-01-13 21:38:23.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"15185c33e166d0dfd9366bfdd8ad68168f411837","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-01-13 23:37:27.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-taskflow-pep8 http://logs.openstack.org/88/267188/1/check/gate-taskflow-pep8/cc91eb3/ : SUCCESS in 1m 16s\n- gate-taskflow-docs http://docs-draft.openstack.org/88/267188/1/check/gate-taskflow-docs/24d77a3//doc/build/html/ : SUCCESS in 1m 54s\n- gate-taskflow-python27 http://logs.openstack.org/88/267188/1/check/gate-taskflow-python27/3314cef/ : SUCCESS in 2m 35s\n- gate-taskflow-python34 http://logs.openstack.org/88/267188/1/check/gate-taskflow-python34/9feec96/ : SUCCESS in 2m 19s\n- gate-taskflow-pypy http://logs.openstack.org/88/267188/1/check/gate-taskflow-pypy/5a187d7/ : FAILURE in 1m 14s (non-voting)\n- gate-tempest-dsvm-neutron-src-taskflow http://logs.openstack.org/88/267188/1/check/gate-tempest-dsvm-neutron-src-taskflow/1652356/ : SUCCESS in 1h 13m 07s","accounts_in_message":[],"_revision_number":1},{"id":"9d00271545c22492117b919f422c9d4816741b36","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2016-01-14 00:32:56.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nOk, so see where this is going more clearly now... Just question though that seems unsure is how does this affect the storage preparation (symbol lookup) and validation of symbol availability that the engine also does if the symbols can vary based on which \u0027remaps_args_for\u0027 was last called.\n\nFor example:\n\nhttps://github.com/openstack/taskflow/blob/master/taskflow/storage.py#L383\n\nhttps://github.com/openstack/taskflow/blob/master/taskflow/storage.py#L403\n\nThose are then used for later fetching and validation and all that goodness, so makes me wonder how the interaction will be there...","accounts_in_message":[],"_revision_number":1},{"id":"20dba4aa385dc66373100951c10d42de824241c5","author":{"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},"date":"2016-01-14 14:43:04.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nYeah, I thought of that on the train ride home.  I will probably have to explicitly have it get the \u0027save_as\u0027 after remapping for both methods so that it validates against both execute and revert.  There\u0027s also some docs that need updated because they specify the existing behavior.","accounts_in_message":[],"_revision_number":1},{"id":"d07bfeda940b2f8843921cb1c8de8a6ca5a830b5","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2016-01-14 19:22:26.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nYa, seems like we thinking about the same thing.\n\nNow just have to figure out what to do about it.\n\nI\u0027ll put my thinking cap on and ponder about this for a while, not sure the most elegant way to pull it off... in a way that doesn\u0027t violate to many of the other validations and checks and such that happen later.\n\nOne idea that comes to mind is to have these new mutable atoms have a marker that says \u0027do not validate ... any of my arguments\u0027 and for these mutable atoms what will happen for them is that they may blow-up at runtime (and people using these new kinds with said property will just have to assume that risk...), the default would/could be the \u0027safe\u0027 kind (not mutable) that can be verified and checked and such.","accounts_in_message":[],"_revision_number":1},{"id":"1ab69f074f4f85ce128e8bfe55641a20fd83792f","author":{"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},"date":"2016-01-15 18:17:38.000000000","message":"Patch Set 1:\n\nSo, the idea with the mutability was that you could mutate them before submitting them to the engine to be executed, not after.  This is the basic use-case we have for that part:\n\ndef flow_factory(*tasks):\n    retry \u003d Times(3, provides\u003d\u0027counter-for-this-flow\u0027)\n    flow \u003d linear_flow(\u0027blah\u0027, retry\u003dretry)\n    for task in tasks:\n        task.rebind \u003d {\u0027counter-for-this-flow\u0027: \u0027counter\u0027}\n    return flow\n\nIt\u0027s really 2 separate changes I\u0027m doing here, but there was so much code overlap I put them both together.\n\nAnyway, I get where you\u0027re coming from.  We could add an immutable flag that we set at engine.compile time so the user can\u0027t modify the atoms after it has compiled the flow, but then how do we keep track of the revert args if we can\u0027t modify the atom?  Maybe I could clone the atom and just modify the method it compiles the args for before we do the revert?  I am having a hard time figuring this out without modifying the public interface of the Atom objects.","accounts_in_message":[],"_revision_number":1},{"id":"d8e27b1b8c98cde1fe8e8693f37e2ca416821cc3","author":{"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},"date":"2016-01-21 15:11:48.000000000","message":"Abandoned\n\nTaking a different approach to the separate revert args.  Will re-approach the mutable atoms after that.","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"6c187e5edca784b2d4cebc7b51017e78269730ae","revisions":{"6c187e5edca784b2d4cebc7b51017e78269730ae":{"kind":"REWORK","_number":1,"created":"2016-01-13 21:38:23.000000000","uploader":{"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},"ref":"refs/changes/88/267188/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/taskflow","ref":"refs/changes/88/267188/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/88/267188/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/88/267188/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/88/267188/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/taskflow refs/changes/88/267188/1"}}},"commit":{"parents":[{"commit":"d07578c3fc27bda9c5f5b42fca6dccccdc03bd42","subject":"Refactor Atom/BaseTask/Task/Retry class hierarchy","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/d07578c3fc27bda9c5f5b42fca6dccccdc03bd42"}]}],"author":{"name":"Greg Hill","email":"greg.hill@rackspace.com","date":"2016-01-13 21:09:46.000000000","tz":-360},"committer":{"name":"Greg Hill","email":"greg.hill@rackspace.com","date":"2016-01-13 21:30:55.000000000","tz":-360},"subject":"Separate execute and revert arg mapping (WIP)","message":"Separate execute and revert arg mapping (WIP)\n\nThis makes Atom mutable so you can modify requires, provides,\netc after creating the object.  It also lets you rebuild the\nargument mapping for a different method other than the default\n\u0027execute\u0027.  So now revert methods can take a different set of\narguments from execute methods and it\u0027ll do the right thing.\n\nChange-Id: Ib482dd68480910b9db7b96d4c7b06ab7f4022d56\nImplements: blueprint separate-revert-args\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/6c187e5edca784b2d4cebc7b51017e78269730ae"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/6c187e5edca784b2d4cebc7b51017e78269730ae"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
