)]}'
{"id":"openstack%2Fplacement~686194","triplet_id":"openstack%2Fplacement~master~I5302fb41e9be013ec47a31f7680361e12b6646ea","project":"openstack/placement","branch":"master","topic":"concurrent_consumer_update_error_code","hashtags":[],"change_id":"I5302fb41e9be013ec47a31f7680361e12b6646ea","subject":"Refine concurrent_update error code","status":"NEW","created":"2019-10-02 15:54:45.000000000","updated":"2019-10-03 09:50:50.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"37fee1b2176307fe305f43efb598201f2b775879","_number":686194,"virtual_id_number":686194,"owner":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"date":"2019-10-02 21:20:28.000000000","_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"tag":"autogenerated:zuul:check","value":1,"date":"2019-10-02 17:31:09.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"}],"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":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"}],"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":{"rejected":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":-1,"date":"2019-10-02 15:56:22.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-10-02 17:31:09.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2019-10-02 21:20:28.000000000","updated_by":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"reviewer":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"state":"REVIEWER"}],"messages":[{"id":"e419bb32c3e0c32a00fdc08cb312acf9fa70e2a0","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-10-02 15:54:45.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"86f530c407377fe97d1349aeddc7f86680787ea4","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-10-02 15:56:22.000000000","message":"Patch Set 1: Workflow-1\n\nDo we need new microversion for this?","accounts_in_message":[],"_revision_number":1},{"id":"a99ac007f11c1d1daefbe4265fddb9f19243d2bd","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-10-02 17:31:09.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/8909212109ae411ba306de00ae814392 : SUCCESS in 1h 05m 15s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/fb6d369518ac40668a067dd822e4cea9 : SUCCESS in 1h 26m 10s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/63853ac3a5a541ce9a3c02dd416fec33 : SUCCESS in 6m 42s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/f97b5d3af6504e258de2b3ad3e1b158d : SUCCESS in 5m 30s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/19352f9f8e534c3586c89484730c2b2d : SUCCESS in 5m 20s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f51c24ce3bc840fa9457374a2ba2a8b6 : SUCCESS in 5m 04s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/55cb8db6dd3a44c7ac5db1099ca23fe1 : SUCCESS in 4m 27s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/23b8bb7df2474738a8d13ba9b6418078 : SUCCESS in 7m 32s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/2efe773300814b1fbbe61850178188a2 : SUCCESS in 7m 09s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/5541bcf0901046d1938a2234460b28ed : SUCCESS in 8m 53s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/190854c532134551a221b5cafcb66c5a : SUCCESS in 4m 46s\n- openstack-tox-functional-py37 https://zuul.opendev.org/t/openstack/build/984aba4d3efc40a0ad9424ec7e9ed870 : SUCCESS in 5m 07s\n- placement-nova-tox-functional-py37 https://zuul.opendev.org/t/openstack/build/e404b0392352445f9477ec6845872066 : SUCCESS in 12m 36s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/66fd5219ce784da69c2889c0851623d2 : SUCCESS in 35m 04s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/3bd1a68584424508afe4fe32cb205b14 : SUCCESS in 14m 02s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/567891b960034ee0b5fb26a812d0380e : SUCCESS in 1h 04m 19s","accounts_in_message":[],"_revision_number":1},{"id":"866d9dcf6a6fc8c1afb94468a1c053f416d424a4","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2019-10-02 21:20:28.000000000","message":"Patch Set 1:\n\n\u003e Do we need new microversion for this?\n\nHm.\n\nI know for sure we said we wouldn\u0027t microversion changes from the \u0027undefined\u0027 code to a real code. But this is a change from a real code to a different real code. So... yeah, it probably does need a microversion :(\n\n(By the way, I\u0027m pretty sure I get an \"I told you so\" on this. I\u0027m too lazy to go find it though.)","accounts_in_message":[],"_revision_number":1},{"id":"2ddcca3ed59d937503ad2f01f48a39ed0c62ad04","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-10-03 09:50:50.000000000","message":"Patch Set 1:\n\n\u003e \u003e Do we need new microversion for this?\n \u003e \n \u003e Hm.\n \u003e \n \u003e I know for sure we said we wouldn\u0027t microversion changes from the\n \u003e \u0027undefined\u0027 code to a real code. But this is a change from a real\n \u003e code to a different real code. So... yeah, it probably does need a\n \u003e microversion :(\n \u003e \n \u003e (By the way, I\u0027m pretty sure I get an \"I told you so\" on this. I\u0027m\n \u003e too lazy to go find it though.)\n\nThanks Eric. I will open a story for it and redo this patch with a microversion bump.\n\nI agree that it would have better to solve this issue earlier and I also remember we talked about this before. But my priorities were different before so I haven\u0027t hide time to propose this. Now I pay for it with a) a new placement microversion b) with the nova code churn to support such (and any earlier) placement microversion in nova.","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"4a5dbf861aab72e72a5f18e4348cc4ccca4f0f79","revisions":{"4a5dbf861aab72e72a5f18e4348cc4ccca4f0f79":{"kind":"REWORK","_number":1,"created":"2019-10-02 15:54:45.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/94/686194/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/94/686194/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/94/686194/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/94/686194/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/94/686194/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/94/686194/1"}}},"commit":{"parents":[{"commit":"c6fb9c30cc02d5e27cfc87ed986a190a92d7e213","subject":"Update READMEs for sample policy/config generation","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/c6fb9c30cc02d5e27cfc87ed986a190a92d7e213"}]}],"author":{"name":"Balazs Gibizer","email":"balazs.gibizer@est.tech","date":"2019-10-02 15:45:30.000000000","tz":120},"committer":{"name":"Balazs Gibizer","email":"balazs.gibizer@est.tech","date":"2019-10-02 15:45:30.000000000","tz":120},"subject":"Refine concurrent_update error code","message":"Refine concurrent_update error code\n\nThere are  two different cases for concurrent_update error to happen. One\nis when the generation of the resource provider does not match with the\nrequest. The other is when the consumer generation does not match with\nthe request. For both cases placement returns HTTP 409 with\nconcurrent_update error code. Nova needs to differentiate between the\ntwo cases in [1][2][3]. As the error code is the same nova needs to\nparse the error message. This is fragile. To resolve this placement\nneeds to send different error codes for the two cases.\n\n[1] https://github.com/openstack/nova/blob/bf37bec80baa527ac013dfaa7480ef2761ed2cb9/nova/scheduler/client/report.py#L1616\n[2] https://github.com/openstack/nova/blob/bf37bec80baa527ac013dfaa7480ef2761ed2cb9/nova/scheduler/client/report.py#L1897\n[3] https://github.com/openstack/nova/blob/bf37bec80baa527ac013dfaa7480ef2761ed2cb9/nova/scheduler/client/report.py#L1941\n\nChange-Id: I5302fb41e9be013ec47a31f7680361e12b6646ea\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/4a5dbf861aab72e72a5f18e4348cc4ccca4f0f79"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/4a5dbf861aab72e72a5f18e4348cc4ccca4f0f79"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":["label:Workflow\u003dMIN"],"failing_atoms":["label:Workflow\u003dMAX"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
