)]}'
{"id":"openstack%2Ftaskflow~81405","triplet_id":"openstack%2Ftaskflow~master~Ie8a274cfd4cb4e64e87c355dc99d466d74a4e82c","project":"openstack/taskflow","branch":"master","topic":"persistence-refactor","hashtags":[],"change_id":"Ie8a274cfd4cb4e64e87c355dc99d466d74a4e82c","subject":"Persistence cleanup part one","status":"MERGED","created":"2014-03-19 00:18:31.000000000","updated":"2014-03-28 13:41:11.000000000","submitted":"2014-03-28 13:41:10.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":16,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"c96f27e6ae1f28a33de0370adf2ec46584e1a021","_number":81405,"virtual_id_number":81405,"owner":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":2,"date":"2014-03-28 13:41:10.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},{"value":0,"_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"all":[{"value":0,"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":2,"date":"2014-03-28 11:20:50.000000000","_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},{"value":2,"date":"2014-03-28 13:25:44.000000000","_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"}],"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":{"approved":{"_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"},"all":[{"value":0,"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"date":"2014-03-28 11:20:50.000000000","_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},{"value":1,"date":"2014-03-28 13:25:44.000000000","_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},{"value":0,"_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"}],"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":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},{"_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2014-03-28 11:20:50.000000000","updated_by":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"reviewer":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"state":"REVIEWER"},{"updated":"2014-03-28 13:25:44.000000000","updated_by":{"_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"},"reviewer":{"_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"},"state":"REVIEWER"},{"updated":"2014-03-28 13:41:10.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"b91553dd270a0322cd96435c8bf8a90ba55afcbc","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-19 00:18:33.000000000","message":"Patch Set 1:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":1},{"id":"0cdec3694319dd0be0c01d5db9a07a095a3e7eb5","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2014-03-19 00:18:37.000000000","message":"Patch Set 1: Work In Progress","accounts_in_message":[],"_revision_number":1},{"id":"589c3bd4c6355677531e4709bab1432d6370e703","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-19 00:24:01.000000000","message":"Patch Set 1: Doesn\u0027t seem to work\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures\n\n- gate-taskflow-pep8 http://logs.openstack.org/05/81405/1/check/gate-taskflow-pep8/88f69c9 : FAILURE in 1m 29s\n- gate-taskflow-docs http://docs-draft.openstack.org/05/81405/1/check/gate-taskflow-docs/4b02a54/doc/build/html/ : SUCCESS in 1m 32s\n- gate-taskflow-python26 http://logs.openstack.org/05/81405/1/check/gate-taskflow-python26/3fc279e : FAILURE in 1m 22s\n- gate-taskflow-python27 http://logs.openstack.org/05/81405/1/check/gate-taskflow-python27/f0ebc7d : FAILURE in 56s\n- gate-taskflow-python33 http://logs.openstack.org/05/81405/1/check/gate-taskflow-python33/ae4450b : FAILURE in 3m 56s\n- gate-taskflow-tox-py26-sa7-mysql http://logs.openstack.org/05/81405/1/check/gate-taskflow-tox-py26-sa7-mysql/eca3a35 : FAILURE in 50s\n- gate-taskflow-tox-py27-sa8-mysql http://logs.openstack.org/05/81405/1/check/gate-taskflow-tox-py27-sa8-mysql/390f46b : FAILURE in 49s\n","accounts_in_message":[],"_revision_number":1},{"id":"30fbc9094ddd4e6997a61c87fcc138a76638cce9","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2014-03-19 01:21:48.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"1ea5b301fcfb3c200d348d83f7d7afc6e94eb889","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-19 01:21:49.000000000","message":"Patch Set 2:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":2},{"id":"06c440dda30ba2dba536a809dbb1e6d00d73455a","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2014-03-19 01:21:53.000000000","message":"Patch Set 2: Work In Progress","accounts_in_message":[],"_revision_number":2},{"id":"cf06fc5b835e0c95f18709c8b28118047ec121c8","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-19 01:26:02.000000000","message":"Patch Set 2: Doesn\u0027t seem to work\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures\n\n- gate-taskflow-pep8 http://logs.openstack.org/05/81405/2/check/gate-taskflow-pep8/4c68cf1 : FAILURE in 1m 20s\n- gate-taskflow-docs http://docs-draft.openstack.org/05/81405/2/check/gate-taskflow-docs/16e3091/doc/build/html/ : SUCCESS in 1m 28s\n- gate-taskflow-python26 http://logs.openstack.org/05/81405/2/check/gate-taskflow-python26/3fae8b1 : FAILURE in 1m 18s\n- gate-taskflow-python27 http://logs.openstack.org/05/81405/2/check/gate-taskflow-python27/050ef04 : FAILURE in 1m 33s\n- gate-taskflow-python33 http://logs.openstack.org/05/81405/2/check/gate-taskflow-python33/81283b0 : FAILURE in 4m 11s\n- gate-taskflow-tox-py26-sa7-mysql http://logs.openstack.org/05/81405/2/check/gate-taskflow-tox-py26-sa7-mysql/5193650 : FAILURE in 1m 21s\n- gate-taskflow-tox-py27-sa8-mysql http://logs.openstack.org/05/81405/2/check/gate-taskflow-tox-py27-sa8-mysql/e8bc213 : FAILURE in 1m 25s\n","accounts_in_message":[],"_revision_number":2},{"id":"9553bcdd5fb6c438395c8afe4079ddbd1aaf11a8","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2014-03-25 23:02:17.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"24a3224c0d867e08cd8c6b7593e07b1ce2f3e381","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-25 23:02:41.000000000","message":"Patch Set 3:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":3},{"id":"b94b9e2325ce18b0a2a3cc1e75d9a9f9643774cd","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2014-03-26 01:25:58.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"2642369110800c5dc08eba3b9678f87282dcb92b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-26 01:25:59.000000000","message":"Patch Set 4:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":4},{"id":"9193277c49a925c8594ff1bd5b108e3b5f0c1116","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-26 02:12:42.000000000","message":"Patch Set 4: Doesn\u0027t seem to work\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures\n\n- gate-taskflow-pep8 http://logs.openstack.org/05/81405/4/check/gate-taskflow-pep8/289bb47 : FAILURE in 1m 27s\n- gate-taskflow-docs http://docs-draft.openstack.org/05/81405/4/check/gate-taskflow-docs/3f9edf3/doc/build/html/ : SUCCESS in 1m 33s\n- gate-taskflow-python26 http://logs.openstack.org/05/81405/4/check/gate-taskflow-python26/ca634b4 : SUCCESS in 2m 34s\n- gate-taskflow-python27 http://logs.openstack.org/05/81405/4/check/gate-taskflow-python27/5cf2ced : SUCCESS in 1m 53s\n- gate-taskflow-python33 http://logs.openstack.org/05/81405/4/check/gate-taskflow-python33/c00314f : SUCCESS in 5m 21s\n- gate-taskflow-tox-py26-sa7-mysql http://logs.openstack.org/05/81405/4/check/gate-taskflow-tox-py26-sa7-mysql/0bec7d7 : SUCCESS in 2m 16s\n- gate-taskflow-tox-py27-sa8-mysql http://logs.openstack.org/05/81405/4/check/gate-taskflow-tox-py27-sa8-mysql/823961b : SUCCESS in 2m 28s\n\n","accounts_in_message":[],"_revision_number":4},{"id":"e2baa9f0cf8d2162ffd4726b09f54026ee30c1b4","author":{"_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"},"date":"2014-03-26 12:14:33.000000000","message":"Patch Set 4: I would prefer that you didn\u0027t merge this\n\n(8 inline comments)\n\n","accounts_in_message":[],"_revision_number":4},{"id":"1e069b026cfb8b3d5b8b43c3dfb9fe2d31683967","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2014-03-26 16:22:10.000000000","message":"Patch Set 4: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":4},{"id":"081525860d96ee90c39bd7ccbb02ce6f147d7dbb","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2014-03-26 18:34:24.000000000","message":"Patch Set 4: (7 inline comments)\n\n","accounts_in_message":[],"_revision_number":4},{"id":"0a67955261ff2c2e068c87b15f005ffee801b718","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-26 20:30:46.000000000","message":"Patch Set 5:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":5},{"id":"c80c59def245c264d00629c6f9f0f49a0ced3f47","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2014-03-26 20:30:46.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"316326bf2829b8ffd382be1bed69db524ab7299f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-26 20:46:04.000000000","message":"Patch Set 5: Works for me\n\nBuild succeeded.\n\n- gate-taskflow-pep8 http://logs.openstack.org/05/81405/5/check/gate-taskflow-pep8/5c35805 : SUCCESS in 1m 14s\n- gate-taskflow-docs http://docs-draft.openstack.org/05/81405/5/check/gate-taskflow-docs/afbc3d0/doc/build/html/ : SUCCESS in 1m 44s\n- gate-taskflow-python26 http://logs.openstack.org/05/81405/5/check/gate-taskflow-python26/94ff428 : SUCCESS in 1m 53s\n- gate-taskflow-python27 http://logs.openstack.org/05/81405/5/check/gate-taskflow-python27/a5c86fa : SUCCESS in 1m 51s\n- gate-taskflow-python33 http://logs.openstack.org/05/81405/5/check/gate-taskflow-python33/ce938a2 : SUCCESS in 4m 01s\n- gate-taskflow-tox-py26-sa7-mysql http://logs.openstack.org/05/81405/5/check/gate-taskflow-tox-py26-sa7-mysql/b7e76e9 : SUCCESS in 2m 31s\n- gate-taskflow-tox-py27-sa8-mysql http://logs.openstack.org/05/81405/5/check/gate-taskflow-tox-py27-sa8-mysql/a6cfa3d : SUCCESS in 1m 47s\n\n","accounts_in_message":[],"_revision_number":5},{"id":"83cdf05d2a2083c9a9ce812b53c13a18fe775a02","author":{"_account_id":7349,"name":"Anastasia Karpinska","email":"akarpinska@griddynamics.com","username":"anastasia-karpinska"},"date":"2014-03-28 11:20:50.000000000","message":"Patch Set 5: Looks good to me (core reviewer)\n\n","accounts_in_message":[],"_revision_number":5},{"id":"bb5089522f4b4e5ea551367add130959c7c04f6e","author":{"_account_id":7366,"name":"Ivan Melnikov","email":"imelnikov@griddynamics.com","username":"imelnikov"},"date":"2014-03-28 13:25:44.000000000","message":"Patch Set 5: Looks good to me (core reviewer); Approved\n\n","accounts_in_message":[],"_revision_number":5},{"id":"4b6e2f05676e5b64ccdba144418219b521c87548","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-28 13:28:49.000000000","message":"Patch Set 5: No score\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":5},{"id":"26d3b920184438f9d7a9f40bf6efcdcf395769a7","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-28 13:37:01.000000000","message":"Patch Set 5: Works for me\n\nBuild succeeded.\n\n- gate-taskflow-pep8 http://logs.openstack.org/05/81405/5/check/gate-taskflow-pep8/8a68a94 : SUCCESS in 1m 37s\n- gate-taskflow-docs http://docs-draft.openstack.org/05/81405/5/check/gate-taskflow-docs/7975709/doc/build/html/ : SUCCESS in 57s\n- gate-taskflow-python26 http://logs.openstack.org/05/81405/5/check/gate-taskflow-python26/2876b45 : SUCCESS in 1m 33s\n- gate-taskflow-python27 http://logs.openstack.org/05/81405/5/check/gate-taskflow-python27/ba1ef7a : SUCCESS in 1m 48s\n- gate-taskflow-python33 http://logs.openstack.org/05/81405/5/check/gate-taskflow-python33/4fa523c : SUCCESS in 3m 58s\n- gate-taskflow-tox-py26-sa7-mysql http://logs.openstack.org/05/81405/5/check/gate-taskflow-tox-py26-sa7-mysql/1b40629 : SUCCESS in 1m 44s\n- gate-taskflow-tox-py27-sa8-mysql http://logs.openstack.org/05/81405/5/check/gate-taskflow-tox-py27-sa8-mysql/98911be : SUCCESS in 1m 33s\n\n","accounts_in_message":[],"_revision_number":5},{"id":"65219e892a7f206510090b8b8b27fe9f7481ab8e","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-28 13:37:02.000000000","message":"Patch Set 5: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":5},{"id":"1bc84815884916b5fa57eb1896bd0db8969369f1","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-28 13:41:10.000000000","message":"Patch Set 5: Verified\n\nBuild succeeded.\n\n- gate-taskflow-docs http://docs-draft.openstack.org/05/81405/5/gate/gate-taskflow-docs/dd8c63c/doc/build/html/ : SUCCESS in 1m 38s\n- gate-taskflow-pep8 http://logs.openstack.org/05/81405/5/gate/gate-taskflow-pep8/dbb3f95 : SUCCESS in 1m 22s\n- gate-taskflow-python26 http://logs.openstack.org/05/81405/5/gate/gate-taskflow-python26/5421ee8 : SUCCESS in 1m 56s\n- gate-taskflow-python27 http://logs.openstack.org/05/81405/5/gate/gate-taskflow-python27/f8135c8 : SUCCESS in 1m 51s\n- gate-taskflow-python33 http://logs.openstack.org/05/81405/5/gate/gate-taskflow-python33/3734a6f : SUCCESS in 4m 05s\n- gate-taskflow-tox-py26-sa7-mysql http://logs.openstack.org/05/81405/5/gate/gate-taskflow-tox-py26-sa7-mysql/6b11e98 : SUCCESS in 2m 05s\n- gate-taskflow-tox-py27-sa8-mysql http://logs.openstack.org/05/81405/5/gate/gate-taskflow-tox-py27-sa8-mysql/4456cf4 : SUCCESS in 2m 32s\n\n","accounts_in_message":[],"_revision_number":5},{"id":"0793ae89b291e4b4a00fcb8baa3e601280d5ce6a","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-28 13:41:11.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"58a5a0932d71a929bae761224be0287577718215","revisions":{"c3d7e16a5eded3ca6127919061018424aecfaa3f":{"kind":"REWORK","_number":1,"created":"2014-03-19 00:18:31.000000000","uploader":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"ref":"refs/changes/05/81405/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/taskflow","ref":"refs/changes/05/81405/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/taskflow refs/changes/05/81405/1"}}},"commit":{"parents":[{"commit":"09490cd904fc4077cc2ff01927ffbb298e25df48","subject":"Merge \"Fix few minor spelling errors\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/09490cd904fc4077cc2ff01927ffbb298e25df48"}]}],"author":{"name":"Joshua Harlow","email":"harlowja@yahoo-inc.com","date":"2014-03-18 22:59:58.000000000","tz":-420},"committer":{"name":"Joshua Harlow","email":"harlowja@yahoo-inc.com","date":"2014-03-19 00:18:27.000000000","tz":-420},"subject":"Persistence adjustments","message":"Persistence adjustments\n\n- Convert the various functions that take a task detail into\n  ones that take atom details (since this is now the generic\n  type they should take).\n- Don\u0027t expose the detail type strings as part of the atom\n  detail api, leave those as private hidden strings and provide\n  conversion functions from string-\u003eclass and class-\u003estring\n  instead.\n- Have the logbook objects contain the following new methods\n  to reduce the dependence on persistence_utils to do the same.\n  - to_dict which converts the current object into a dict\n  - from_dict which converts the provided dict into a object\n  - merge which merges a incoming objects data with the current\n    objects\n- Have the persistence backends use these new methods instead of\n  there current usage.\n\nChange-Id: Ie8a274cfd4cb4e64e87c355dc99d466d74a4e82c\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/c3d7e16a5eded3ca6127919061018424aecfaa3f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/c3d7e16a5eded3ca6127919061018424aecfaa3f"}]},"branch":"refs/heads/master"},"08ab73c4576dc4d974e2df7b10a949aeb6990008":{"kind":"REWORK","_number":2,"created":"2014-03-19 01:21:48.000000000","uploader":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"ref":"refs/changes/05/81405/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/taskflow","ref":"refs/changes/05/81405/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/taskflow refs/changes/05/81405/2"}}},"commit":{"parents":[{"commit":"09490cd904fc4077cc2ff01927ffbb298e25df48","subject":"Merge \"Fix few minor spelling errors\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/09490cd904fc4077cc2ff01927ffbb298e25df48"}]}],"author":{"name":"Joshua Harlow","email":"harlowja@yahoo-inc.com","date":"2014-03-18 22:59:58.000000000","tz":-420},"committer":{"name":"Joshua Harlow","email":"harlowja@yahoo-inc.com","date":"2014-03-19 01:21:15.000000000","tz":-420},"subject":"Persistence adjustments","message":"Persistence adjustments\n\n- Convert the various functions that take a task detail into\n  ones that take atom details (since this is now the generic\n  type they should take).\n- Don\u0027t expose the detail type strings as part of the atom\n  detail api, leave those as private hidden strings and provide\n  conversion functions from string-\u003eclass and class-\u003estring\n  instead.\n- Have the logbook objects contain the following new methods\n  to reduce the dependence on persistence_utils to do the same.\n  - to_dict which converts the current object into a dict\n  - from_dict which converts the provided dict into a object\n  - merge which merges a incoming objects data with the current\n    objects\n- Have the persistence backends use these new methods instead of\n  there current usage.\n\nChange-Id: Ie8a274cfd4cb4e64e87c355dc99d466d74a4e82c\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/08ab73c4576dc4d974e2df7b10a949aeb6990008"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/08ab73c4576dc4d974e2df7b10a949aeb6990008"}]},"branch":"refs/heads/master"},"47f20d05ea09c933ac5f7b72dc63345629a417fd":{"kind":"REWORK","_number":3,"created":"2014-03-25 23:02:17.000000000","uploader":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"ref":"refs/changes/05/81405/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/taskflow","ref":"refs/changes/05/81405/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/taskflow refs/changes/05/81405/3"}}},"commit":{"parents":[{"commit":"57c83a5c5d76e5dc5e2c1d9ad81e22d50b3529bd","subject":"Merge \"Add more tests for resumption with retry\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/57c83a5c5d76e5dc5e2c1d9ad81e22d50b3529bd"}]}],"author":{"name":"Joshua Harlow","email":"harlowja@yahoo-inc.com","date":"2014-03-18 22:59:58.000000000","tz":-420},"committer":{"name":"Joshua Harlow","email":"harlowja@yahoo-inc.com","date":"2014-03-25 22:57:16.000000000","tz":-420},"subject":"Persistence cleanup part uno","message":"Persistence cleanup part uno\n\n- Convert the various functions that take a task detail into\n  ones that take atom details (since this is now the generic\n  type they should take).\n- Don\u0027t expose the detail type strings as part of the atom\n  detail api, leave those as private hidden strings and provide\n  conversion functions from string\u003c-\u003eclass instead.\n- Have the logbook objects contain the following new methods\n  to reduce the dependence on persistence_utils to do the same.\n  - to_dict which converts the current object into a dict\n  - from_dict which converts the provided dict into a object\n  - merge which merges a incoming objects data with the current\n    objects\n- Have the persistence backends + storage + action engine use these\n  new methods instead of there current usage.\n- Don\u0027t compare to logbook.RETRY_DETAIL or logbook.TASK_DETAIL since\n  python has the isinstance function just use it (ideally we should\n  fix the code so that this isn\u0027t even needed, usage of isinstance\n  means something is not designed/structured right).\n- In storage tests we can\u0027t assume that failures will be non-lossy\n  since under certain backends when a failure is stored information\n  about the internally held exc_info is lost, so take this into\n  account when testing.\n\nChange-Id: Ie8a274cfd4cb4e64e87c355dc99d466d74a4e82c\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/47f20d05ea09c933ac5f7b72dc63345629a417fd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/47f20d05ea09c933ac5f7b72dc63345629a417fd"}]},"branch":"refs/heads/master"},"93804b1f8ddfb710a976f0a1f28e9963e20eb1af":{"kind":"REWORK","_number":4,"created":"2014-03-26 01:25:58.000000000","uploader":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"ref":"refs/changes/05/81405/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/taskflow","ref":"refs/changes/05/81405/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/taskflow refs/changes/05/81405/4"}}},"commit":{"parents":[{"commit":"57c83a5c5d76e5dc5e2c1d9ad81e22d50b3529bd","subject":"Merge \"Add more tests for resumption with retry\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/57c83a5c5d76e5dc5e2c1d9ad81e22d50b3529bd"}]}],"author":{"name":"Joshua Harlow","email":"harlowja@yahoo-inc.com","date":"2014-03-18 22:59:58.000000000","tz":-420},"committer":{"name":"Joshua Harlow","email":"harlowja@yahoo-inc.com","date":"2014-03-26 01:21:45.000000000","tz":-420},"subject":"Persistence cleanup part uno","message":"Persistence cleanup part uno\n\n- Convert the various functions that take a task detail into\n  ones that take atom details (since this is now the generic\n  type they should take).\n- Don\u0027t expose the detail type strings as part of the atom\n  detail api, leave those as private hidden strings and provide\n  conversion functions from string\u003c-\u003eclass instead.\n- Have the logbook objects contain the following new methods\n  to reduce the dependence on persistence_utils to do the same.\n  - to_dict which converts the current object into a dict\n  - from_dict which converts the provided dict into a object\n  - merge which merges a incoming objects data with the current\n    objects\n- Have the persistence backends + storage + action engine use these\n  new methods instead of there current usage.\n- Don\u0027t compare to logbook.RETRY_DETAIL or logbook.TASK_DETAIL since\n  python has the isinstance function just use it (ideally we should\n  fix the code so that this isn\u0027t even needed, usage of isinstance\n  means something is not designed/structured right).\n- In storage tests we can\u0027t assume that failures will be non-lossy\n  since under certain backends when a failure is stored information\n  about the internally held exc_info is lost, so take this into\n  account when testing.\n\nChange-Id: Ie8a274cfd4cb4e64e87c355dc99d466d74a4e82c\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/93804b1f8ddfb710a976f0a1f28e9963e20eb1af"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/93804b1f8ddfb710a976f0a1f28e9963e20eb1af"}]},"branch":"refs/heads/master"},"58a5a0932d71a929bae761224be0287577718215":{"kind":"REWORK","_number":5,"created":"2014-03-26 20:30:46.000000000","uploader":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"ref":"refs/changes/05/81405/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/taskflow","ref":"refs/changes/05/81405/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/taskflow refs/changes/05/81405/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/taskflow refs/changes/05/81405/5"}}},"commit":{"parents":[{"commit":"690047d7b7083a9b1fb7e511a5b83512dc558b9d","subject":"Merge \"SQLAlchemy requirements put in order\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/690047d7b7083a9b1fb7e511a5b83512dc558b9d"}]}],"author":{"name":"Joshua Harlow","email":"harlowja@yahoo-inc.com","date":"2014-03-18 22:59:58.000000000","tz":-420},"committer":{"name":"Joshua Harlow","email":"harlowja@yahoo-inc.com","date":"2014-03-26 19:48:40.000000000","tz":-420},"subject":"Persistence cleanup part one","message":"Persistence cleanup part one\n\n- Convert the various functions that take a task detail into\n  ones that take atom details (since this is now the generic\n  type they should take).\n- Don\u0027t expose the detail type strings as part of the atom\n  detail api, leave those as private hidden strings and provide\n  conversion functions from string\u003c-\u003eclass instead.\n- Have the logbook objects contain the following new methods\n  to reduce the dependence on persistence_utils to do the same.\n  - to_dict() which converts the current object into a dict\n  - from_dict() which converts the provided dict into a object\n  - merge() which merges a incoming objects data with the current\n    objects\n- Have the persistence backends + storage + action engine use these\n  new methods instead of there current usage.\n- Don\u0027t compare to logbook.RETRY_DETAIL or logbook.TASK_DETAIL since\n  python has the isinstance function just use it (ideally we should\n  fix the code so that this isn\u0027t even needed, usage of isinstance\n  means something is not designed/structured right).\n- In storage tests we can\u0027t assume that failures will be non-lossy\n  since under certain backends when a failure is stored information\n  about the internally held exc_info is lost, so take this into\n  account when testing by using matches() where applicable.\n\nChange-Id: Ie8a274cfd4cb4e64e87c355dc99d466d74a4e82c\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/58a5a0932d71a929bae761224be0287577718215"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/taskflow/commit/58a5a0932d71a929bae761224be0287577718215"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
