)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"69ebd3b34356f28ecf29ca989d674eeed4b52dd3","unresolved":false,"context_lines":[{"line_number":10,"context_line":"instance maybe boot from volume or boot from image, in the past,"},{"line_number":11,"context_line":"only boot from image rebuild to a new image will be done as we"},{"line_number":12,"context_line":"expected, this commit is intended to solve the rebuild of the"},{"line_number":13,"context_line":"two boot methods instance."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Idfed323c966c4f43905f3d55a58148e326cab0fd"},{"line_number":16,"context_line":"Closes-Bug: #1657718"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9f0e0f27_4ccbdba4","line":13,"updated":"2017-06-09 11:28:28.000000000","message":"Could you please add some description how do you actually solve the issue, your main idea?","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"}],"nova/compute/manager.py":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"69ebd3b34356f28ecf29ca989d674eeed4b52dd3","unresolved":false,"context_lines":[{"line_number":2686,"context_line":"            func \u003d objects.block_device.block_device_make_list_from_dicts"},{"line_number":2687,"context_line":"            img_root_bdm \u003d func(context, img_bdms).root_bdm()"},{"line_number":2688,"context_line":"            # String to bool will return True, need to restore it"},{"line_number":2689,"context_line":"            if img_bdms[0][\u0027delete_on_termination\u0027] \u003d\u003d \u0027False\u0027:"},{"line_number":2690,"context_line":"                img_root_bdm.delete_on_termination \u003d False"},{"line_number":2691,"context_line":"            img_root_bdm.instance_uuid \u003d instance.uuid"},{"line_number":2692,"context_line":"            img_root_bdm.create()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f0e0f27_2caf8795","line":2689,"updated":"2017-06-09 11:28:28.000000000","message":"Can img_bdms be empty?","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"},{"author":{"_account_id":24562,"name":"falseuser","email":"falseuser@outlook.com","username":"falseuser"},"change_message_id":"78a7cdea559e0d4ed1266bab97d6793c8667138a","unresolved":false,"context_lines":[{"line_number":2686,"context_line":"            func \u003d objects.block_device.block_device_make_list_from_dicts"},{"line_number":2687,"context_line":"            img_root_bdm \u003d func(context, img_bdms).root_bdm()"},{"line_number":2688,"context_line":"            # String to bool will return True, need to restore it"},{"line_number":2689,"context_line":"            if img_bdms[0][\u0027delete_on_termination\u0027] \u003d\u003d \u0027False\u0027:"},{"line_number":2690,"context_line":"                img_root_bdm.delete_on_termination \u003d False"},{"line_number":2691,"context_line":"            img_root_bdm.instance_uuid \u003d instance.uuid"},{"line_number":2692,"context_line":"            img_root_bdm.create()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_56b7e987","line":2689,"in_reply_to":"7f231b9d_a55f280d","updated":"2017-06-10 02:16:34.000000000","message":"Thanks for your suggestion, I did not notice this and I would improve it.","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"},{"author":{"_account_id":24562,"name":"falseuser","email":"falseuser@outlook.com","username":"falseuser"},"change_message_id":"c38a0060b0a497f6b35eb2e6be96ce7987e7f394","unresolved":false,"context_lines":[{"line_number":2686,"context_line":"            func \u003d objects.block_device.block_device_make_list_from_dicts"},{"line_number":2687,"context_line":"            img_root_bdm \u003d func(context, img_bdms).root_bdm()"},{"line_number":2688,"context_line":"            # String to bool will return True, need to restore it"},{"line_number":2689,"context_line":"            if img_bdms[0][\u0027delete_on_termination\u0027] \u003d\u003d \u0027False\u0027:"},{"line_number":2690,"context_line":"                img_root_bdm.delete_on_termination \u003d False"},{"line_number":2691,"context_line":"            img_root_bdm.instance_uuid \u003d instance.uuid"},{"line_number":2692,"context_line":"            img_root_bdm.create()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f0e0f27_99892e28","line":2689,"in_reply_to":"9f0e0f27_2caf8795","updated":"2017-06-09 14:26:16.000000000","message":"Can be empty, will trigger the following AttributeError","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"50f938444582fa9453a9cf63499150e579fb0e99","unresolved":false,"context_lines":[{"line_number":2686,"context_line":"            func \u003d objects.block_device.block_device_make_list_from_dicts"},{"line_number":2687,"context_line":"            img_root_bdm \u003d func(context, img_bdms).root_bdm()"},{"line_number":2688,"context_line":"            # String to bool will return True, need to restore it"},{"line_number":2689,"context_line":"            if img_bdms[0][\u0027delete_on_termination\u0027] \u003d\u003d \u0027False\u0027:"},{"line_number":2690,"context_line":"                img_root_bdm.delete_on_termination \u003d False"},{"line_number":2691,"context_line":"            img_root_bdm.instance_uuid \u003d instance.uuid"},{"line_number":2692,"context_line":"            img_root_bdm.create()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_a55f280d","line":2689,"in_reply_to":"9f0e0f27_99892e28","updated":"2017-06-09 18:46:36.000000000","message":"What about IndexError?","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"69ebd3b34356f28ecf29ca989d674eeed4b52dd3","unresolved":false,"context_lines":[{"line_number":2710,"context_line":"            detach_block_devices(context, bdms, recreate)"},{"line_number":2711,"context_line":"        else:"},{"line_number":2712,"context_line":"            self._power_off_instance(context, instance, clean_shutdown\u003dTrue)"},{"line_number":2713,"context_line":"            detach_block_devices(context, bdms, recreate)"},{"line_number":2714,"context_line":"            self.driver.destroy(context, instance,"},{"line_number":2715,"context_line":"                                network_info\u003dnetwork_info,"},{"line_number":2716,"context_line":"                                block_device_info\u003dblock_device_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f0e0f27_8c3693b4","line":2713,"updated":"2017-06-09 11:28:28.000000000","message":"Do we need the \"recreate\" variable here?","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"},{"author":{"_account_id":24562,"name":"falseuser","email":"falseuser@outlook.com","username":"falseuser"},"change_message_id":"c38a0060b0a497f6b35eb2e6be96ce7987e7f394","unresolved":false,"context_lines":[{"line_number":2710,"context_line":"            detach_block_devices(context, bdms, recreate)"},{"line_number":2711,"context_line":"        else:"},{"line_number":2712,"context_line":"            self._power_off_instance(context, instance, clean_shutdown\u003dTrue)"},{"line_number":2713,"context_line":"            detach_block_devices(context, bdms, recreate)"},{"line_number":2714,"context_line":"            self.driver.destroy(context, instance,"},{"line_number":2715,"context_line":"                                network_info\u003dnetwork_info,"},{"line_number":2716,"context_line":"                                block_device_info\u003dblock_device_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f0e0f27_992a4ee5","line":2713,"in_reply_to":"9f0e0f27_8c3693b4","updated":"2017-06-09 14:26:16.000000000","message":"Need to be clear is rebuild or evacuate，recreate means evacuate.","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"69ebd3b34356f28ecf29ca989d674eeed4b52dd3","unresolved":false,"context_lines":[{"line_number":2718,"context_line":"            bdms \u003d list(block_device.get_bdms_to_connect("},{"line_number":2719,"context_line":"                                    bdms, exclude_root_mapping\u003dTrue))"},{"line_number":2720,"context_line":"            self._create_root_bdm_from_image(context, instance,"},{"line_number":2721,"context_line":"                                             image_meta, bdms)"},{"line_number":2722,"context_line":""},{"line_number":2723,"context_line":"        instance.task_state \u003d task_states.REBUILD_BLOCK_DEVICE_MAPPING"},{"line_number":2724,"context_line":"        instance.save(expected_task_state\u003d[task_states.REBUILDING])"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f0e0f27_8c5fb3e4","line":2721,"updated":"2017-06-09 11:28:28.000000000","message":"It\u0027s not clear bdms is updated in _create_root_bdm_from_image. Can we make it more explicit?","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"},{"author":{"_account_id":24562,"name":"falseuser","email":"falseuser@outlook.com","username":"falseuser"},"change_message_id":"c38a0060b0a497f6b35eb2e6be96ce7987e7f394","unresolved":false,"context_lines":[{"line_number":2718,"context_line":"            bdms \u003d list(block_device.get_bdms_to_connect("},{"line_number":2719,"context_line":"                                    bdms, exclude_root_mapping\u003dTrue))"},{"line_number":2720,"context_line":"            self._create_root_bdm_from_image(context, instance,"},{"line_number":2721,"context_line":"                                             image_meta, bdms)"},{"line_number":2722,"context_line":""},{"line_number":2723,"context_line":"        instance.task_state \u003d task_states.REBUILD_BLOCK_DEVICE_MAPPING"},{"line_number":2724,"context_line":"        instance.save(expected_task_state\u003d[task_states.REBUILDING])"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f0e0f27_5426bdb9","line":2721,"in_reply_to":"9f0e0f27_8c5fb3e4","updated":"2017-06-09 14:26:16.000000000","message":"Ok, I will try to improve some","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"69ebd3b34356f28ecf29ca989d674eeed4b52dd3","unresolved":false,"context_lines":[{"line_number":2968,"context_line":"                                            destroy_bdm\u003dTrue)"},{"line_number":2969,"context_line":"                    if bdm is not root_bdm and bdm.is_volume:"},{"line_number":2970,"context_line":"                        self._detach_volume(context, bdm.volume_id, instance,"},{"line_number":2971,"context_line":"                                            destroy_bdm\u003dFalse)"},{"line_number":2972,"context_line":""},{"line_number":2973,"context_line":"        files \u003d self._decode_files(injected_files)"},{"line_number":2974,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f0e0f27_ec798f2f","line":2971,"updated":"2017-06-09 11:28:28.000000000","message":"Can use \n\nself._detach_volume(context, bdm.volume_id, instance,\n                    destroy_bdm\u003dbdm is root_bdm)\n\ninstead ifs.","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"},{"author":{"_account_id":24562,"name":"falseuser","email":"falseuser@outlook.com","username":"falseuser"},"change_message_id":"c38a0060b0a497f6b35eb2e6be96ce7987e7f394","unresolved":false,"context_lines":[{"line_number":2968,"context_line":"                                            destroy_bdm\u003dTrue)"},{"line_number":2969,"context_line":"                    if bdm is not root_bdm and bdm.is_volume:"},{"line_number":2970,"context_line":"                        self._detach_volume(context, bdm.volume_id, instance,"},{"line_number":2971,"context_line":"                                            destroy_bdm\u003dFalse)"},{"line_number":2972,"context_line":""},{"line_number":2973,"context_line":"        files \u003d self._decode_files(injected_files)"},{"line_number":2974,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f0e0f27_3412295a","line":2971,"in_reply_to":"9f0e0f27_ec798f2f","updated":"2017-06-09 14:26:16.000000000","message":"The destroy_bdm means completely detach a volume，will synchronize to cinder and nova\u0027s database.\nThe root_bdm may be a volume or not, if recreate, should not destroy bdm.\nI think I should be able to improve some","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"69ebd3b34356f28ecf29ca989d674eeed4b52dd3","unresolved":false,"context_lines":[{"line_number":3172,"context_line":"            mock.patch.object(self.compute, \u0027_power_off_instance\u0027,"},{"line_number":3173,"context_line":"                              return_value\u003dNone),"},{"line_number":3174,"context_line":"            mock.patch.object(objects.BlockDeviceMapping, \u0027create\u0027,"},{"line_number":3175,"context_line":"                              return_value\u003dNone),"},{"line_number":3176,"context_line":"        ) as("},{"line_number":3177,"context_line":"             mock_destroy,"},{"line_number":3178,"context_line":"             mock_spawn,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f0e0f27_2c9d4759","line":3175,"updated":"2017-06-09 11:28:28.000000000","message":"Can we make these mocks as decorators?","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"69ebd3b34356f28ecf29ca989d674eeed4b52dd3","unresolved":false,"context_lines":[{"line_number":3189,"context_line":"            instance.task_state \u003d task_states.REBUILDING"},{"line_number":3190,"context_line":"            instance.save(expected_task_state\u003d[task_states.REBUILDING])"},{"line_number":3191,"context_line":"            block_device_mapping \u003d [{"},{"line_number":3192,"context_line":"            \u0027guest_format\u0027: None,"},{"line_number":3193,"context_line":"            \u0027boot_index\u0027: \u00270\u0027,"},{"line_number":3194,"context_line":"            \u0027no_device\u0027: None,"},{"line_number":3195,"context_line":"            \u0027snapshot_id\u0027: \u0027fake_snapshot_id\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f0e0f27_ec9e2f53","line":3192,"updated":"2017-06-09 11:28:28.000000000","message":"Please fix indentation.","commit_id":"b97ccfa8933b1704552e514881583ae6d3f29626"}]}
