)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20146,"name":"yuyafei","email":"yu.yafei@foxmail.com","username":"yuyafei"},"change_message_id":"b2a03fd33d41a6b30ac5ff365fe8be31af861196","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alex Szarka \u003cxavvior@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-28 00:06:52 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Recover instances when physical data is missing and resume_guests_state is True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova tries to recover instances to the last state, in case of the"},{"line_number":10,"context_line":"resume_guests_state_on_host_boot option is True. If physical data is missing"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9abb7d3a_b9547654","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":85},"updated":"2016-05-28 03:16:01.000000000","message":"The first line should be limited to 50 characters","commit_id":"09622eaba644f452f01c7079fc140d20a1fd8fa1"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"4425965c185fc3d162fe6a5433f7bd1c0b76c2f6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alex Szarka \u003cxavvior@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-28 00:06:52 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Recover instances when physical data is missing and resume_guests_state is True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova tries to recover instances to the last state, in case of the"},{"line_number":10,"context_line":"resume_guests_state_on_host_boot option is True. If physical data is missing"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9abb7d3a_40010eae","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":85},"in_reply_to":"9abb7d3a_b9547654","updated":"2016-05-28 06:46:34.000000000","message":"Hello! Thanks for you insights. However, we uploaded this patch as we need some real advice. Can you please suggest us how to test this function properly or how other way should we do this? Thank you in advance!","commit_id":"09622eaba644f452f01c7079fc140d20a1fd8fa1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"638904d6c97fc595b34e3286104e9005085f6f89","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova tries to recover instances at start to the last state, in case of the"},{"line_number":10,"context_line":"resume_guests_state_on_host_boot option is True. If physical data is missing"},{"line_number":11,"context_line":"from the disk (e.g.: hardware failure), Nova can\u0027t recover instances. But we"},{"line_number":12,"context_line":"should try to rebuild instances with the original data (which are stored"},{"line_number":13,"context_line":"in the database)."},{"line_number":14,"context_line":"Closes-Bug: 1585494"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"3aaa91ec_22ca0c50","line":11,"range":{"start_line":11,"start_character":21,"end_line":11,"end_character":37},"updated":"2016-06-28 07:09:46.000000000","message":"nit: I would say something like: compute blade replacement due to hardware failure.","commit_id":"62d966c461fed650cbd06052d3b95182915a8e68"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"674940f97806e593047541edc5bab6b7adc11bfe","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Recover instances when physical data is missing"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova tries to recover instances at start to the last state, in case of the"},{"line_number":10,"context_line":"resume_guests_state_on_host_boot option is True. If physical data is missing"},{"line_number":11,"context_line":"from the disk (e.g.: compute blade replacement due to hardware failure),"},{"line_number":12,"context_line":"nova can\u0027t recover instances. But we should try to rebuild instances with"},{"line_number":13,"context_line":"the original data (which are stored in the database)."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: 1585494"},{"line_number":16,"context_line":"Depends-On: I2cb9bbc8ebac43135c1b318441f3a71f996d78f0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"fa7ab95a_638e8d2f","line":13,"range":{"start_line":10,"start_character":49,"end_line":13,"end_character":53},"updated":"2016-09-01 21:14:02.000000000","message":"This reads to me as the scenario for using evacuate, i.e. unplanned failure and you need to resurrect the instance from a failed compute.","commit_id":"555d304b70742a1f56c2285db2c1c0530371b426"}],"nova/compute/manager.py":[{"author":{"_account_id":20146,"name":"yuyafei","email":"yu.yafei@foxmail.com","username":"yuyafei"},"change_message_id":"b2a03fd33d41a6b30ac5ff365fe8be31af861196","unresolved":false,"context_lines":[{"line_number":1023,"context_line":"                LOG.warning(_LW(\u0027Hypervisor driver does not support \u0027"},{"line_number":1024,"context_line":"                                \u0027resume guests\u0027), instance\u003dinstance)"},{"line_number":1025,"context_line":"            except Exception:"},{"line_number":1026,"context_line":"                # NOTE(xavvior): The instance failed to resume, so we set the"},{"line_number":1027,"context_line":"                #                so we try rebuild. If this was unsuccess, we set"},{"line_number":1028,"context_line":"                #                the instance to error and attempt to continue."},{"line_number":1029,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_595f4a72","line":1026,"range":{"start_line":1026,"start_character":73,"end_line":1026,"end_character":76},"updated":"2016-05-28 03:16:01.000000000","message":"Lack of instance afer this word.","commit_id":"09622eaba644f452f01c7079fc140d20a1fd8fa1"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"13dd90b334ed7d5f3a6c52bd2ed3131bca54d878","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"                                \u0027resume guests\u0027), instance\u003dinstance)"},{"line_number":1025,"context_line":"            except Exception:"},{"line_number":1026,"context_line":"                # NOTE(xavvior): The instance failed to resume, so we"},{"line_number":1027,"context_line":"                #                try rebuild. If this was unsuccessful, we"},{"line_number":1028,"context_line":"                #                set the instance to error and attempt"},{"line_number":1029,"context_line":"                #                to continue."},{"line_number":1030,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_f16f3290","line":1027,"range":{"start_line":1027,"start_character":32,"end_line":1027,"end_character":38},"updated":"2016-05-28 11:44:15.000000000","message":"try to rebuild","commit_id":"efc2faecc704a461f07ff0282bd09cdfc56144cc"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"13dd90b334ed7d5f3a6c52bd2ed3131bca54d878","unresolved":false,"context_lines":[{"line_number":1028,"context_line":"                #                set the instance to error and attempt"},{"line_number":1029,"context_line":"                #                to continue."},{"line_number":1030,"context_line":"                try:"},{"line_number":1031,"context_line":"                    LOG.info(_LW(\u0027Failed to resume instance, try rebuild\u0027))"},{"line_number":1032,"context_line":"                    bdms \u003d objects.BlockDeviceMappingList.get_by_instance_uuid("},{"line_number":1033,"context_line":"                            context, instance.uuid)"},{"line_number":1034,"context_line":"                    self.rebuild_instance("}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_f1f612d6","line":1031,"range":{"start_line":1031,"start_character":61,"end_line":1031,"end_character":65},"updated":"2016-05-28 11:44:15.000000000","message":"trying to rebuild","commit_id":"efc2faecc704a461f07ff0282bd09cdfc56144cc"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"13dd90b334ed7d5f3a6c52bd2ed3131bca54d878","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"                        bdms\u003dbdms,"},{"line_number":1043,"context_line":"                        recreate\u003dFalse,"},{"line_number":1044,"context_line":"                    )"},{"line_number":1045,"context_line":"                except Exception as e:"},{"line_number":1046,"context_line":"                    LOG.warning(_LW(\u0027Failed to resume instance\u0027),"},{"line_number":1047,"context_line":"                            instance\u003dinstance)"},{"line_number":1048,"context_line":"                    self._set_instance_obj_error_state(context, instance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_b1e2ca01","line":1045,"range":{"start_line":1045,"start_character":16,"end_line":1045,"end_character":38},"updated":"2016-05-28 11:44:15.000000000","message":"You should use \"except Exception:\" only, as e is never used in the catch block.","commit_id":"efc2faecc704a461f07ff0282bd09cdfc56144cc"},{"author":{"_account_id":18599,"name":"Péter Hegedűs","email":"hpeter@inf.u-szeged.hu","username":"hpeter"},"change_message_id":"c3a2e9e34c100b39fc4df0a8d1ac99a98ec76d12","unresolved":false,"context_lines":[{"line_number":1027,"context_line":"            except Exception:"},{"line_number":1028,"context_line":"                # NOTE(xavvior): The instance failed to resume, so we"},{"line_number":1029,"context_line":"                #                try to rebuild. If this was unsuccessful, we"},{"line_number":1030,"context_line":"                #                set the instance to error and attempt"},{"line_number":1031,"context_line":"                #                to continue."},{"line_number":1032,"context_line":"                try:"},{"line_number":1033,"context_line":"                    LOG.info(_LI(\u0027Failed to resume instance,\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a9d85d2_49266e69","line":1030,"range":{"start_line":1030,"start_character":33,"end_line":1030,"end_character":58},"updated":"2016-06-20 13:02:18.000000000","message":"...set the instance state to error...","commit_id":"01dd51ee71a5bb326f504a66ec2c274e1d1911b2"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"c7fc940a72c45006ab0273c1c698dd98c3807e0d","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"                            get_by_instance_uuid(context, instance.uuid),"},{"line_number":1045,"context_line":"                        recreate\u003dFalse,"},{"line_number":1046,"context_line":"                    )"},{"line_number":1047,"context_line":"                    LOG.info(_LI(\u0027Failed failed\u0027))"},{"line_number":1048,"context_line":"                except Exception:"},{"line_number":1049,"context_line":"                    LOG.warning(_LW(\u0027Failed to resume instance\u0027),"},{"line_number":1050,"context_line":"                            instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a9d85d2_1f4f6a93","line":1047,"range":{"start_line":1047,"start_character":20,"end_line":1047,"end_character":50},"updated":"2016-06-20 17:41:14.000000000","message":"Info message should contain more information.","commit_id":"4cb219d838820ee92ef5f88dd33d6bf7a17d150d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3d0afa75c89be196dca0096907414b378208ef24","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"                        recreate\u003dFalse,"},{"line_number":1046,"context_line":"                    )"},{"line_number":1047,"context_line":"                except Exception:"},{"line_number":1048,"context_line":"                    LOG.warning(_LW(\u0027Failed to resume instance\u0027),"},{"line_number":1049,"context_line":"                            instance\u003dinstance)"},{"line_number":1050,"context_line":"                    self._set_instance_obj_error_state(context, instance)"},{"line_number":1051,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5a9d85d2_e498f71d","line":1048,"range":{"start_line":1048,"start_character":47,"end_line":1048,"end_character":53},"updated":"2016-06-21 07:53:30.000000000","message":"I think here we can say that we failed to rebuild the instance. Something like\n\u0027Failed to rebuild the instance during resume.\u0027","commit_id":"9a6e6bc5b40e8120ab495c416a326a7d829ab53c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3d0afa75c89be196dca0096907414b378208ef24","unresolved":false,"context_lines":[{"line_number":2760,"context_line":""},{"line_number":2761,"context_line":"        instance.power_state \u003d self._get_power_state(context, instance)"},{"line_number":2762,"context_line":"        instance.task_state \u003d task_states.REBUILDING"},{"line_number":2763,"context_line":"        instance.save()"},{"line_number":2764,"context_line":""},{"line_number":2765,"context_line":"        if recreate:"},{"line_number":2766,"context_line":"            # Needed for nova-network, does nothing for neutron"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a9d85d2_c4ab3b1c","line":2763,"updated":"2016-06-21 07:53:30.000000000","message":"Why we need to remove the expected_task_state?","commit_id":"9a6e6bc5b40e8120ab495c416a326a7d829ab53c"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"bddf6e3bab166b93b95a15643cf4fa9a08ac4fbd","unresolved":false,"context_lines":[{"line_number":1015,"context_line":"                #                set the instance state to error and attempt"},{"line_number":1016,"context_line":"                #                to continue."},{"line_number":1017,"context_line":"                try:"},{"line_number":1018,"context_line":"                    LOG.info(_LI(\u0027Failed to resume instance,\u0027"},{"line_number":1019,"context_line":"                                 \u0027trying to rebuild\u0027))"},{"line_number":1020,"context_line":"                    instance.task_state \u003d task_states.REBUILDING"},{"line_number":1021,"context_line":"                    instance.save()"}],"source_content_type":"text/x-python","patch_set":17,"id":"dada55a8_09d39c60","line":1018,"range":{"start_line":1018,"start_character":59,"end_line":1018,"end_character":61},"updated":"2016-07-25 06:40:29.000000000","message":"Takashi Natsume missed it, but I think the space is also needed here, after the comma.","commit_id":"18e9d4cd70059dde40c264ebc180f5fe1818d153"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2f796b0e9c8c6a321a66f31360308fc5b0fb5cf7","unresolved":false,"context_lines":[{"line_number":1032,"context_line":"                        recreate\u003dFalse,"},{"line_number":1033,"context_line":"                    )"},{"line_number":1034,"context_line":"                except Exception:"},{"line_number":1035,"context_line":"                    LOG.warning(_LW(\u0027Failed to rebuild the instance\u0027"},{"line_number":1036,"context_line":"                                    \u0027during resume\u0027),"},{"line_number":1037,"context_line":"                            instance\u003dinstance)"},{"line_number":1038,"context_line":"                    self._set_instance_obj_error_state(context, instance)"}],"source_content_type":"text/x-python","patch_set":17,"id":"dada55a8_6920589c","line":1035,"range":{"start_line":1035,"start_character":66,"end_line":1035,"end_character":67},"updated":"2016-07-25 06:34:17.000000000","message":"Need a space after \"instance\".","commit_id":"18e9d4cd70059dde40c264ebc180f5fe1818d153"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"f3c44703fcafc4d7671675aab8fcd187b22db4dc","unresolved":false,"context_lines":[{"line_number":1015,"context_line":"                #                set the instance state to error and attempt"},{"line_number":1016,"context_line":"                #                to continue."},{"line_number":1017,"context_line":"                try:"},{"line_number":1018,"context_line":"                    LOG.info(_LI(\u0027Failed to resume instance,\u0027"},{"line_number":1019,"context_line":"                                 \u0027trying to rebuild\u0027))"},{"line_number":1020,"context_line":"                    instance.task_state \u003d task_states.REBUILDING"},{"line_number":1021,"context_line":"                    instance.save()"}],"source_content_type":"text/x-python","patch_set":18,"id":"dada55a8_a474e0fd","line":1018,"range":{"start_line":1018,"start_character":59,"end_line":1018,"end_character":61},"updated":"2016-07-26 15:31:35.000000000","message":"Space needed","commit_id":"b315b0dbd70e7e094e5372a41f9a0bc4fd4e75fa"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"638904d6c97fc595b34e3286104e9005085f6f89","unresolved":false,"context_lines":[{"line_number":603,"context_line":"                       \u0027_get_instance_block_device_info\u0027)"},{"line_number":604,"context_line":"    @mock.patch.object(manager.ComputeManager, \u0027_set_instance_obj_error_state\u0027)"},{"line_number":605,"context_line":"    @mock.patch.object(manager.ComputeManager, \u0027rebuild_instance\u0027)"},{"line_number":606,"context_line":"    def test_init_instance_failed_resume_rebuild_successful(self, mock_rebuild,"},{"line_number":607,"context_line":"                mock_set_inst, mock_get_inst, mock_resume, mock_plug,"},{"line_number":608,"context_line":"                mock_get_power, mock_get_by_instance_uuid):"},{"line_number":609,"context_line":"        instance \u003d fake_instance.fake_instance_obj("}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_05ad5a31","line":606,"updated":"2016-06-28 07:09:46.000000000","message":"I think your test fails because you missed to mock instance.save()","commit_id":"62d966c461fed650cbd06052d3b95182915a8e68"}]}
