)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"02db9d2a0ecb1a575dadc037ba4a5eea30555a33","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix the issue instance not destroyed after evacuated"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After complete evacuate action, the status of migration will change"},{"line_number":10,"context_line":"to \u0027done\u0027 from \u0027accepted\u0027, so the _destroy_evacuated_instances action"},{"line_number":11,"context_line":"in old nova-compute should use status \u0027done\u0027 to filter migration list."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a8ffd7b_b3a8a021","line":9,"updated":"2015-11-26 10:55:42.000000000","message":"What if the evacuate action has not been completed yet, or will never complete due to error?","commit_id":"ec1756c1064e22c17d80fcfd4b210e00bc8029d4"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ee4da02982cf651e1417368206974f870d72add","unresolved":false,"context_lines":[{"line_number":2487,"context_line":"        ) as (_get_instances_on_driver, get_instance_nw_info,"},{"line_number":2488,"context_line":"              _get_instance_block_device_info, _is_instance_storage_shared,"},{"line_number":2489,"context_line":"              destroy, migration_list, migration_save):"},{"line_number":2490,"context_line":"            migration_list.return_value \u003d [migration]"},{"line_number":2491,"context_line":"            self.compute._destroy_evacuated_instances(self.context)"},{"line_number":2492,"context_line":"            # Only instance 2 should be deleted. Instance 1 is still running"},{"line_number":2493,"context_line":"            # here, but no migration from our host exists, so ignore it"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_ddf73989","line":2490,"range":{"start_line":2490,"start_character":12,"end_line":2490,"end_character":53},"updated":"2016-01-14 16:41:24.000000000","message":"This is actually misleading since the migration object doesn\u0027t have the status set to \u0027accepted\u0027, but since we\u0027re mocking we overlook that detail. Otherwise this test is exactly the same as the new test below (it was a copy) and the only difference I see in the new test is setting the migration status to \u0027done\u0027.\n\nWe could combine the tests into a single test that just iterates on the [\u0027accepted\u0027, \u0027done\u0027] list, idk, maybe that\u0027s too much. But really this test is not functionally different from the new one.","commit_id":"349dde069fb03c994d8cfb5b43e20befa242dc4d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ee4da02982cf651e1417368206974f870d72add","unresolved":false,"context_lines":[{"line_number":2527,"context_line":"            mock.patch(\u0027nova.objects.Migration.save\u0027)"},{"line_number":2528,"context_line":"        ) as (_get_instances_on_driver, get_instance_nw_info,"},{"line_number":2529,"context_line":"              _get_instance_block_device_info, _is_instance_storage_shared,"},{"line_number":2530,"context_line":"              destroy, migration_list, migration_save):"},{"line_number":2531,"context_line":"            migration_list.return_value \u003d [migration]"},{"line_number":2532,"context_line":"            self.compute._destroy_evacuated_instances(self.context)"},{"line_number":2533,"context_line":"            # Only instance 2 should be deleted. Instance 1 is still running"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_9d4461b7","line":2530,"range":{"start_line":2530,"start_character":23,"end_line":2530,"end_character":37},"updated":"2016-01-14 16:41:24.000000000","message":"We should maybe assert that this is called with the args that we expect given the test this was copied from is not doing that and functionally these tests are not different at all.","commit_id":"349dde069fb03c994d8cfb5b43e20befa242dc4d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5e9967c4cf3ca3f8ec74ff998cc8cff228f2c00c","unresolved":false,"context_lines":[{"line_number":2488,"context_line":"            mock.patch(\u0027nova.objects.Migration.save\u0027)"},{"line_number":2489,"context_line":"        ) as (_get_instances_on_driver, get_instance_nw_info,"},{"line_number":2490,"context_line":"              _get_instance_block_device_info, _is_instance_storage_shared,"},{"line_number":2491,"context_line":"              destroy, migration_list, migration_save):"},{"line_number":2492,"context_line":"            migration_list.return_value \u003d [migration]"},{"line_number":2493,"context_line":"            self.compute._destroy_evacuated_instances(self.context)"},{"line_number":2494,"context_line":"            # Only instance 2 should be deleted. Instance 1 is still running"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_0f754931","line":2491,"range":{"start_line":2491,"start_character":23,"end_line":2491,"end_character":37},"updated":"2016-01-15 20:17:51.000000000","message":"nit: we could assert this is called with the proper list, but that is already done in test_compute so nevermind.","commit_id":"a79ac83bae4e673a416cca4b86a3f47f4f25b0aa"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ee4da02982cf651e1417368206974f870d72add","unresolved":false,"context_lines":[{"line_number":1452,"context_line":"        self.assertEqual(2, len(migrations))"},{"line_number":1453,"context_line":"        for migration in migrations:"},{"line_number":1454,"context_line":"            index \u003d migrations.index(migration)"},{"line_number":1455,"context_line":"            self.assertEqual(filters[\"status\"][index], migration[\u0027status\u0027])"},{"line_number":1456,"context_line":""},{"line_number":1457,"context_line":"    def test_get_migrations_by_filters_with_type(self):"},{"line_number":1458,"context_line":"        self._create(status\u003d\"special\", source_compute\u003d\"host9\","}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_7d7f2dab","line":1455,"range":{"start_line":1455,"start_character":12,"end_line":1455,"end_character":75},"updated":"2016-01-14 16:41:24.000000000","message":"Isn\u0027t this assuming that the migrations are coming back from the database in the order that the status filter list is passed in? That seems dangerous, and we shouldn\u0027t really care. We should just care that we get back the 2 migration records and that their status is in the filters status list, regardless of order.","commit_id":"349dde069fb03c994d8cfb5b43e20befa242dc4d"}]}
