)]}'
{"nova/tests/functional/integrated_helpers.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ec7d31a6c24a6f9008c8d1d7117b7223eb641949","unresolved":false,"context_lines":[{"line_number":494,"context_line":"    def _evacuate_server("},{"line_number":495,"context_line":"            self, server, expected_host\u003dNone,"},{"line_number":496,"context_line":"            expected_state\u003d\u0027ACTIVE\u0027, expected_task_state\u003dNOT_SPECIFIED,"},{"line_number":497,"context_line":"            **kwargs):"},{"line_number":498,"context_line":"        \"\"\"Evacuate a server."},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"        The extra kwargs can be used to specify additional fields in the"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f6b1bfe_89ed89f1","line":497,"range":{"start_line":497,"start_character":12,"end_line":497,"end_character":20},"updated":"2020-10-15 08:56:07.000000000","message":"Mentioned this on a later file, but rather than expanding this could we just pass through a dict?","commit_id":"44e3516c2977f8bc93333759d4b47a218c18a04d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e28d1f6c43811b29e9a9950d4c01aa62cd975ec5","unresolved":false,"context_lines":[{"line_number":494,"context_line":"    def _evacuate_server("},{"line_number":495,"context_line":"            self, server, expected_host\u003dNone,"},{"line_number":496,"context_line":"            expected_state\u003d\u0027ACTIVE\u0027, expected_task_state\u003dNOT_SPECIFIED,"},{"line_number":497,"context_line":"            **kwargs):"},{"line_number":498,"context_line":"        \"\"\"Evacuate a server."},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"        The extra kwargs can be used to specify additional fields in the"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f681702_0407c01e","line":497,"range":{"start_line":497,"start_character":12,"end_line":497,"end_character":20},"in_reply_to":"7f6b1bfe_89ed89f1","updated":"2020-10-16 14:28:32.000000000","message":"Done","commit_id":"44e3516c2977f8bc93333759d4b47a218c18a04d"}],"nova/tests/functional/regressions/test_bug_1669054.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ec7d31a6c24a6f9008c8d1d7117b7223eb641949","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        host2.stop()"},{"line_number":58,"context_line":"        self.api.force_down_service(\u0027host2\u0027, \u0027nova-compute\u0027, forced_down\u003dTrue)"},{"line_number":59,"context_line":"        # Now try to evacuate the server back to the original source compute."},{"line_number":60,"context_line":"        server \u003d self._evacuate_server(server, onSharedStorage\u003dFalse)"},{"line_number":61,"context_line":"        # The evacuate flow in the compute manager is annoying in that it"},{"line_number":62,"context_line":"        # sets the instance status to ACTIVE before updating the host, so we"},{"line_number":63,"context_line":"        # have to wait for the migration record to be \u0027done\u0027 to avoid a race."}],"source_content_type":"text/x-python","patch_set":1,"id":"7f6b1bfe_69dc6d74","line":60,"range":{"start_line":60,"start_character":47,"end_line":60,"end_character":68},"updated":"2020-10-15 08:56:07.000000000","message":"Would it make more sense to just pass a dict of args rather than this?","commit_id":"44e3516c2977f8bc93333759d4b47a218c18a04d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e28d1f6c43811b29e9a9950d4c01aa62cd975ec5","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        host2.stop()"},{"line_number":58,"context_line":"        self.api.force_down_service(\u0027host2\u0027, \u0027nova-compute\u0027, forced_down\u003dTrue)"},{"line_number":59,"context_line":"        # Now try to evacuate the server back to the original source compute."},{"line_number":60,"context_line":"        server \u003d self._evacuate_server(server, onSharedStorage\u003dFalse)"},{"line_number":61,"context_line":"        # The evacuate flow in the compute manager is annoying in that it"},{"line_number":62,"context_line":"        # sets the instance status to ACTIVE before updating the host, so we"},{"line_number":63,"context_line":"        # have to wait for the migration record to be \u0027done\u0027 to avoid a race."}],"source_content_type":"text/x-python","patch_set":1,"id":"5f681702_e403a40e","line":60,"range":{"start_line":60,"start_character":47,"end_line":60,"end_character":68},"in_reply_to":"7f6b1bfe_69dc6d74","updated":"2020-10-16 14:28:32.000000000","message":"Done","commit_id":"44e3516c2977f8bc93333759d4b47a218c18a04d"}],"nova/tests/functional/test_server_group.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ec7d31a6c24a6f9008c8d1d7117b7223eb641949","unresolved":false,"context_lines":[{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        evacuated_server \u003d self._evacuate_server("},{"line_number":450,"context_line":"            servers[1], onSharedStorage\u003d\u0027False\u0027)"},{"line_number":451,"context_line":"        self._wait_for_migration_status(servers[1], [\u0027done\u0027])"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        # check that the server is evacuated to another host"},{"line_number":454,"context_line":"        self.assertNotEqual(evacuated_server[\u0027OS-EXT-SRV-ATTR:host\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f6b1bfe_29dd5542","line":451,"range":{"start_line":451,"start_character":7,"end_line":451,"end_character":61},"updated":"2020-10-15 08:56:07.000000000","message":"This seems to be pretty consistent. Do we want to include this in the helper?","commit_id":"44e3516c2977f8bc93333759d4b47a218c18a04d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e28d1f6c43811b29e9a9950d4c01aa62cd975ec5","unresolved":false,"context_lines":[{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        evacuated_server \u003d self._evacuate_server("},{"line_number":450,"context_line":"            servers[1], onSharedStorage\u003d\u0027False\u0027)"},{"line_number":451,"context_line":"        self._wait_for_migration_status(servers[1], [\u0027done\u0027])"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        # check that the server is evacuated to another host"},{"line_number":454,"context_line":"        self.assertNotEqual(evacuated_server[\u0027OS-EXT-SRV-ATTR:host\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f681702_8f080929","line":451,"range":{"start_line":451,"start_character":7,"end_line":451,"end_character":61},"in_reply_to":"7f6b1bfe_29dd5542","updated":"2020-10-16 14:28:32.000000000","message":"let\u0027s try.\n\n//later//\n\nso simply mapping ACTIVE status to \u0027done\u0027 migration and ERROR status to \u0027error\u0027 migration does not work. We sometimes have \u0027failed\u0027 status instead of \u0027error\u0027 (don\u0027t ask why) and also ACTIVE and error migration is also a possible case if evacuation is rejected early. So I needed to add \u0027expected_migration_statuses\u0027 to the param list. But at least I was able to force waiting for the migration status in every case.","commit_id":"44e3516c2977f8bc93333759d4b47a218c18a04d"}]}
