)]}'
{"novaclient/tests/functional/v2/test_trigger_crash_dump.py":[{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"2ee17faf5e15aa30294b6d653827328bf8c319df","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.nova(\u0027trigger-crash-dump %s \u0027 % server.id)"},{"line_number":53,"context_line":"        self._wait_for_nmi(server.id)"},{"line_number":54,"context_line":"        output \u003d self.nova(\u0027console-log %s \u0027 % server.id)"},{"line_number":55,"context_line":"        self.assertIn(\"Uhhuh. NMI received for unknown reason \", output)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_trigger_crash_dump_in_error_state(self):"},{"line_number":58,"context_line":"        server \u003d self._create_server()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_dcfea937","side":"PARENT","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":72},"updated":"2016-03-06 09:19:22.000000000","message":"If we delete this, then these tests will have no \"assert*\",  the only check is the command \"nove instance-action-list\" in _wait_for_nmi().\nIMO, we can\u0027t reach the purpose of functional test, if we delete these \"assertIn\".\nWe must make sure that vm itself has received NMI interrupt.\n\nThanks","commit_id":"d63800d5ec0340a00f536cc3e178a7e8416084c1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8aeba8efbce1ca52eeadf7cc3954d194e2ec86c5","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.nova(\u0027trigger-crash-dump %s \u0027 % server.id)"},{"line_number":53,"context_line":"        self._wait_for_nmi(server.id)"},{"line_number":54,"context_line":"        output \u003d self.nova(\u0027console-log %s \u0027 % server.id)"},{"line_number":55,"context_line":"        self.assertIn(\"Uhhuh. NMI received for unknown reason \", output)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_trigger_crash_dump_in_error_state(self):"},{"line_number":58,"context_line":"        server \u003d self._create_server()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_5dbbb075","side":"PARENT","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":72},"in_reply_to":"7af24918_dcfea937","updated":"2016-03-06 22:57:28.000000000","message":"Cao,\n\nIt is difficult to verify receiving NMI signal from VM viewpoint.\nAt least, this verification is completely wrong.\n\nAs the commit message said, current expected message of VM is fallback debugging message and that means crash-dump didn\u0027t work at all because crash-dump is not set in VM side.\n\nThe main purpose why sending NMI is triggering crash-dump on VM side as the API/command name, but current tests are testing crash-dump *should not* work with this command.\nThat is completely wrong, and I cannot find any merit of this message assertion.\n\nThe best way of this test is to check the dump file is created with this command/API, but the destination of a dump file depends on Linux distributions and configurations.\nThat is super complex/difficult, and I don\u0027t think it is worth to do that on this novaclient tests.\n\nNow these assertions are failing randomly on the gate, and we cannot merge the other unrelated patches.\nIt is necessary to solve this problem quickly.","commit_id":"d63800d5ec0340a00f536cc3e178a7e8416084c1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"405ffd8aee4a210fc7e7fe5b0b23178acddc289a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    # The server status must be ACTIVE, PAUSED, RESCUED, RESIZED or ERROR."},{"line_number":35,"context_line":"    # If not, the conflictingRequest(409) code is returned"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _wait_for_nmi(self, server_id, timeout\u003d60,"},{"line_number":38,"context_line":"                      poll_interval\u003d1):"},{"line_number":39,"context_line":"        start_time \u003d time.time()"},{"line_number":40,"context_line":"        while time.time() - start_time \u003c timeout:"},{"line_number":41,"context_line":"            if \u0027trigger_crash_dump\u0027 in self.nova(\u0027instance-action-list %s \u0027 %"},{"line_number":42,"context_line":"                                                 server_id):"},{"line_number":43,"context_line":"                break"},{"line_number":44,"context_line":"            time.sleep(poll_interval)"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            self.fail(\"Trigger crash dump hasn\u0027t been executed for server %s\""},{"line_number":47,"context_line":"                      % (server_id, timeout))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_trigger_crash_dump_in_active_state(self):"},{"line_number":50,"context_line":"        server \u003d self._create_server()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_be7e3aac","line":47,"range":{"start_line":37,"start_character":4,"end_line":47,"end_character":45},"updated":"2016-03-07 16:38:27.000000000","message":"This seems good enough to me that the API cast off to the compute and the action was performed:\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/rpcapi.py#L1066","commit_id":"471e08a4d41f9d1bcf4703b4a0c64731a94f2510"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"c9d9738cb71a37c702500691d68e998f1523c7ef","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    # The server status must be ACTIVE, PAUSED, RESCUED, RESIZED or ERROR."},{"line_number":35,"context_line":"    # If not, the conflictingRequest(409) code is returned"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _wait_for_nmi(self, server_id, timeout\u003d60,"},{"line_number":38,"context_line":"                      poll_interval\u003d1):"},{"line_number":39,"context_line":"        start_time \u003d time.time()"},{"line_number":40,"context_line":"        while time.time() - start_time \u003c timeout:"},{"line_number":41,"context_line":"            if \u0027trigger_crash_dump\u0027 in self.nova(\u0027instance-action-list %s \u0027 %"},{"line_number":42,"context_line":"                                                 server_id):"},{"line_number":43,"context_line":"                break"},{"line_number":44,"context_line":"            time.sleep(poll_interval)"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            self.fail(\"Trigger crash dump hasn\u0027t been executed for server %s\""},{"line_number":47,"context_line":"                      % (server_id, timeout))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_trigger_crash_dump_in_active_state(self):"},{"line_number":50,"context_line":"        server \u003d self._create_server()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_f9ba9cbf","line":47,"range":{"start_line":37,"start_character":4,"end_line":47,"end_character":45},"in_reply_to":"5aef4532_be7e3aac","updated":"2016-03-07 16:49:45.000000000","message":"Hmmm…come to think of it, this self.fail() won\u0027t work because of the additional \"timeout\" element.","commit_id":"471e08a4d41f9d1bcf4703b4a0c64731a94f2510"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f1435b42f25c1b99c606967c991faf965ddcf312","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    # The server status must be ACTIVE, PAUSED, RESCUED, RESIZED or ERROR."},{"line_number":35,"context_line":"    # If not, the conflictingRequest(409) code is returned"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _wait_for_nmi(self, server_id, timeout\u003d60,"},{"line_number":38,"context_line":"                      poll_interval\u003d1):"},{"line_number":39,"context_line":"        start_time \u003d time.time()"},{"line_number":40,"context_line":"        while time.time() - start_time \u003c timeout:"},{"line_number":41,"context_line":"            if \u0027trigger_crash_dump\u0027 in self.nova(\u0027instance-action-list %s \u0027 %"},{"line_number":42,"context_line":"                                                 server_id):"},{"line_number":43,"context_line":"                break"},{"line_number":44,"context_line":"            time.sleep(poll_interval)"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            self.fail(\"Trigger crash dump hasn\u0027t been executed for server %s\""},{"line_number":47,"context_line":"                      % (server_id, timeout))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_trigger_crash_dump_in_active_state(self):"},{"line_number":50,"context_line":"        server \u003d self._create_server()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_90ec06c9","line":47,"range":{"start_line":37,"start_character":4,"end_line":47,"end_character":45},"in_reply_to":"5aef4532_f9ba9cbf","updated":"2016-03-07 18:26:04.000000000","message":"Nice catch, should be a follow up fix.","commit_id":"471e08a4d41f9d1bcf4703b4a0c64731a94f2510"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"c9d9738cb71a37c702500691d68e998f1523c7ef","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        server \u003d self._create_server()"},{"line_number":51,"context_line":"        self.wait_for_server_os_boot(server.id)"},{"line_number":52,"context_line":"        self.nova(\u0027trigger-crash-dump %s \u0027 % server.id)"},{"line_number":53,"context_line":"        self._wait_for_nmi(server.id)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def test_trigger_crash_dump_in_error_state(self):"},{"line_number":56,"context_line":"        server \u003d self._create_server()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_79f5ec81","line":53,"updated":"2016-03-07 16:49:45.000000000","message":"Since we\u0027re eliminating the assert, I propose renaming _wait_for_nmi() to include \u0027assert\u0027 somewhere in the name, or leaving a comment before each use to explain why there isn\u0027t an assert…","commit_id":"471e08a4d41f9d1bcf4703b4a0c64731a94f2510"}]}
