)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"a6a19320c022e5494425485079a16b80a4feaebf","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Almost all of the async operations would update the task state, but the"},{"line_number":10,"context_line":"confirm_resize does not."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"That would cause some trouble: our timer in the browser updates the"},{"line_number":13,"context_line":"instances based on the task state until it becomes none,"},{"line_number":14,"context_line":"if the task state is none(any task is completed), we believe the status"},{"line_number":15,"context_line":"of an instance is stable, and there is no need to refresh the instance."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"dae33548_2e572527","line":12,"updated":"2016-02-17 11:21:10.000000000","message":"It would be better to have a more generic description of the problem rather than the issue it causes for your timer:\n\nNot setting the task state causes problems for any applications that poll based on task state.","commit_id":"d3b4d2cd89b31879215b43a7704cd428fabb582d"},{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"7c8a6ee49ffa4c55db663e7f47290b2cfaa807b2","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Almost all of the async operations would update the task state, but the"},{"line_number":10,"context_line":"confirm_resize does not."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"That would cause some trouble: our timer in the browser updates the"},{"line_number":13,"context_line":"instances based on the task state until it becomes none,"},{"line_number":14,"context_line":"if the task state is none(any task is completed), we believe the status"},{"line_number":15,"context_line":"of an instance is stable, and there is no need to refresh the instance."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"dae33548_fe281d9c","line":12,"in_reply_to":"dae33548_2e572527","updated":"2016-02-18 05:27:39.000000000","message":"You\u0027re right. Thank you!","commit_id":"d3b4d2cd89b31879215b43a7704cd428fabb582d"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"a6a19320c022e5494425485079a16b80a4feaebf","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"That would cause some trouble: our timer in the browser updates the"},{"line_number":13,"context_line":"instances based on the task state until it becomes none,"},{"line_number":14,"context_line":"if the task state is none(any task is completed), we believe the status"},{"line_number":15,"context_line":"of an instance is stable, and there is no need to refresh the instance."},{"line_number":16,"context_line":"But at the beginning of the confirm_resize, we did not update the task"},{"line_number":17,"context_line":"status, and the task state is still none,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"dae33548_4e9c290f","line":14,"updated":"2016-02-17 11:21:10.000000000","message":"Believe this should be \"If the task state is none (all tasks are completed)\"?","commit_id":"d3b4d2cd89b31879215b43a7704cd428fabb582d"},{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"7c8a6ee49ffa4c55db663e7f47290b2cfaa807b2","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"That would cause some trouble: our timer in the browser updates the"},{"line_number":13,"context_line":"instances based on the task state until it becomes none,"},{"line_number":14,"context_line":"if the task state is none(any task is completed), we believe the status"},{"line_number":15,"context_line":"of an instance is stable, and there is no need to refresh the instance."},{"line_number":16,"context_line":"But at the beginning of the confirm_resize, we did not update the task"},{"line_number":17,"context_line":"status, and the task state is still none,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"dae33548_fe0f7d34","line":14,"in_reply_to":"dae33548_4e9c290f","updated":"2016-02-18 05:27:39.000000000","message":"Yes.","commit_id":"d3b4d2cd89b31879215b43a7704cd428fabb582d"}],"nova/api/openstack/common.py":[{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"4df4f43d91d0cb8e178b2fc7b40d90cb6ce75514","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    },"},{"line_number":78,"context_line":"    vm_states.RESIZED: {"},{"line_number":79,"context_line":"        \u0027default\u0027: \u0027VERIFY_RESIZE\u0027,"},{"line_number":80,"context_line":"        task_states.RESIZE_CONFIRMING: \u0027CONFIRMING_RESIZE\u0027,"},{"line_number":81,"context_line":"        task_states.RESIZE_REVERTING: \u0027REVERT_RESIZE\u0027,"},{"line_number":82,"context_line":"    },"},{"line_number":83,"context_line":"    vm_states.PAUSED: {"}],"source_content_type":"text/x-python","patch_set":16,"id":"7a8ec9b2_516a09b4","line":80,"range":{"start_line":80,"start_character":20,"end_line":80,"end_character":57},"updated":"2016-09-16 16:16:26.000000000","message":"Can\u0027t it be more consistent? Using resize confirming and confirming resize looks suspiciously.","commit_id":"80c325e16c4f98a0ee5e2d30e30307229677f3e7"},{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"157b946e5af16cb2019ca593072a8fe94bf762fe","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    },"},{"line_number":78,"context_line":"    vm_states.RESIZED: {"},{"line_number":79,"context_line":"        \u0027default\u0027: \u0027VERIFY_RESIZE\u0027,"},{"line_number":80,"context_line":"        task_states.RESIZE_CONFIRMING: \u0027CONFIRMING_RESIZE\u0027,"},{"line_number":81,"context_line":"        task_states.RESIZE_REVERTING: \u0027REVERT_RESIZE\u0027,"},{"line_number":82,"context_line":"    },"},{"line_number":83,"context_line":"    vm_states.PAUSED: {"}],"source_content_type":"text/x-python","patch_set":16,"id":"7a8ec9b2_54f49b59","line":80,"range":{"start_line":80,"start_character":20,"end_line":80,"end_character":57},"in_reply_to":"7a8ec9b2_516a09b4","updated":"2016-09-18 03:10:23.000000000","message":"Yes, I agree they do look inconsistent, but if we change \u0027CONFIRMING_RESIZE\u0027 into \u0027RESIZE_CONFIRMING\u0027, it would seem inconsistent with \u0027VERIFY_RESIZE\u0027 and \u0027REVERT_RESIZE\u0027. This is really embarrassing.\nThank you!","commit_id":"80c325e16c4f98a0ee5e2d30e30307229677f3e7"}],"nova/compute/api.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"8918bf05cc8d4a0e14eba750d6811da16fb1c9fb","unresolved":false,"context_lines":[{"line_number":2512,"context_line":"        instance.task_state \u003d task_states.RESIZE_REVERTING"},{"line_number":2513,"context_line":"        try:"},{"line_number":2514,"context_line":"            instance.save(expected_task_state\u003d[None])"},{"line_number":2515,"context_line":"        except Exception:"},{"line_number":2516,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":2517,"context_line":"                quotas.rollback()"},{"line_number":2518,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_d302b1b3","line":2515,"range":{"start_line":2515,"start_character":8,"end_line":2515,"end_character":25},"updated":"2015-11-12 09:04:18.000000000","message":"here (see comment below)","commit_id":"59894c1fe28fc8849935afa5732b0607ad0ff65f"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"8918bf05cc8d4a0e14eba750d6811da16fb1c9fb","unresolved":false,"context_lines":[{"line_number":2547,"context_line":"        quotas \u003d compute_utils.reserve_quota_delta(context, deltas, instance)"},{"line_number":2548,"context_line":""},{"line_number":2549,"context_line":"        instance.task_state \u003d task_states.RESIZE_CONFIRMING"},{"line_number":2550,"context_line":"        instance.save(expected_task_state\u003d[None])"},{"line_number":2551,"context_line":""},{"line_number":2552,"context_line":"        migration.status \u003d \u0027confirming\u0027"},{"line_number":2553,"context_line":"        migration.save()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_9308a9db","line":2550,"range":{"start_line":2550,"start_character":8,"end_line":2550,"end_character":49},"updated":"2015-11-12 09:04:18.000000000","message":"Are we missing the same try-except as above?","commit_id":"59894c1fe28fc8849935afa5732b0607ad0ff65f"},{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"b4cc8f1db30b3fdc59ed7457b760cf08685f175d","unresolved":false,"context_lines":[{"line_number":2547,"context_line":"        quotas \u003d compute_utils.reserve_quota_delta(context, deltas, instance)"},{"line_number":2548,"context_line":""},{"line_number":2549,"context_line":"        instance.task_state \u003d task_states.RESIZE_CONFIRMING"},{"line_number":2550,"context_line":"        instance.save(expected_task_state\u003d[None])"},{"line_number":2551,"context_line":""},{"line_number":2552,"context_line":"        migration.status \u003d \u0027confirming\u0027"},{"line_number":2553,"context_line":"        migration.save()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_c4e66543","line":2550,"in_reply_to":"da85f559_9308a9db","updated":"2015-11-12 09:57:52.000000000","message":"oh yes,we should rollback the reserve_quota_delta. thanks!","commit_id":"59894c1fe28fc8849935afa5732b0607ad0ff65f"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"506b751eb0ca84a23105df84123ff3fdfeee9ae5","unresolved":false,"context_lines":[{"line_number":2546,"context_line":"        deltas \u003d compute_utils.downsize_quota_delta(context, instance)"},{"line_number":2547,"context_line":"        quotas \u003d compute_utils.reserve_quota_delta(context, deltas, instance)"},{"line_number":2548,"context_line":""},{"line_number":2549,"context_line":"        instance.task_state \u003d task_states.RESIZE_CONFIRMING"},{"line_number":2550,"context_line":"        try:"},{"line_number":2551,"context_line":"            instance.save(expected_task_state\u003d[None])"},{"line_number":2552,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5aef4532_2909f6dd","line":2549,"updated":"2016-03-09 07:58:03.000000000","message":"I think we need to handle backwards compatibility here. What if the source compute is running Liberty? It will still expect a task state of None.","commit_id":"975661836b15aa4f46af9c2e3eff5b65bccd7778"},{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"b5fa3b66aee76abb3e84f60fc72e6296fb18a07c","unresolved":false,"context_lines":[{"line_number":2546,"context_line":"        deltas \u003d compute_utils.downsize_quota_delta(context, instance)"},{"line_number":2547,"context_line":"        quotas \u003d compute_utils.reserve_quota_delta(context, deltas, instance)"},{"line_number":2548,"context_line":""},{"line_number":2549,"context_line":"        instance.task_state \u003d task_states.RESIZE_CONFIRMING"},{"line_number":2550,"context_line":"        try:"},{"line_number":2551,"context_line":"            instance.save(expected_task_state\u003d[None])"},{"line_number":2552,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5aef4532_30b836c8","line":2549,"in_reply_to":"5aef4532_2909f6dd","updated":"2016-03-09 09:45:09.000000000","message":"Thanks for your review, but I\u0027m not sure how to handle it, could you tell me some tips?","commit_id":"975661836b15aa4f46af9c2e3eff5b65bccd7778"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"513fd5713103befaf72e922ebd1b7346193aea59","unresolved":false,"context_lines":[{"line_number":2546,"context_line":"        deltas \u003d compute_utils.downsize_quota_delta(context, instance)"},{"line_number":2547,"context_line":"        quotas \u003d compute_utils.reserve_quota_delta(context, deltas, instance)"},{"line_number":2548,"context_line":""},{"line_number":2549,"context_line":"        instance.task_state \u003d task_states.RESIZE_CONFIRMING"},{"line_number":2550,"context_line":"        try:"},{"line_number":2551,"context_line":"            instance.save(expected_task_state\u003d[None])"},{"line_number":2552,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5aef4532_f3189820","line":2549,"in_reply_to":"5aef4532_30b836c8","updated":"2016-03-09 10:10:53.000000000","message":"You probably need to bump the compute RPC version and only make this change if the manager supports the new version. This is best done here: https://github.com/openstack/nova/blob/master/nova/compute/rpcapi.py#L492\n\nSee other methods in the same file for inspiration on handling multiple supported versions.","commit_id":"975661836b15aa4f46af9c2e3eff5b65bccd7778"},{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"7ba9075cf8f72d513b4f06758c77ce76dd69f5a8","unresolved":false,"context_lines":[{"line_number":2546,"context_line":"        deltas \u003d compute_utils.downsize_quota_delta(context, instance)"},{"line_number":2547,"context_line":"        quotas \u003d compute_utils.reserve_quota_delta(context, deltas, instance)"},{"line_number":2548,"context_line":""},{"line_number":2549,"context_line":"        instance.task_state \u003d task_states.RESIZE_CONFIRMING"},{"line_number":2550,"context_line":"        try:"},{"line_number":2551,"context_line":"            instance.save(expected_task_state\u003d[None])"},{"line_number":2552,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"da0c15f0_3f5786cf","line":2549,"in_reply_to":"5aef4532_f3189820","updated":"2016-03-28 13:04:24.000000000","message":"Thank you very much! I\u0027ve added backwards compatibility code before sending the rpc call.","commit_id":"975661836b15aa4f46af9c2e3eff5b65bccd7778"}],"nova/compute/manager.py":[{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"506b751eb0ca84a23105df84123ff3fdfeee9ae5","unresolved":false,"context_lines":[{"line_number":3531,"context_line":""},{"line_number":3532,"context_line":"            instance.vm_state \u003d vm_state"},{"line_number":3533,"context_line":"            instance.task_state \u003d None"},{"line_number":3534,"context_line":"            instance.save(expected_task_state\u003d[None, task_states.DELETING])"},{"line_number":3535,"context_line":""},{"line_number":3536,"context_line":"            self._notify_about_instance_usage("},{"line_number":3537,"context_line":"                context, instance, \"resize.confirm.end\","}],"source_content_type":"text/x-python","patch_set":10,"id":"5aef4532_09ca3a6d","side":"PARENT","line":3534,"updated":"2016-03-09 07:58:03.000000000","message":"If we change the task state in compute_api we will break older nodes that still have the above.","commit_id":"f35e65bd37363a9edce2b7db59e0a4d5eff7c5c7"}]}
