)]}'
{"nova/tests/functional/test_servers.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1d56127dad59914cc6021eb089ee482961dc791f","unresolved":false,"context_lines":[{"line_number":1693,"context_line":"            # the migration will fail on the dest node and the instance will"},{"line_number":1694,"context_line":"            # go into error state"},{"line_number":1695,"context_line":"            server \u003d self._wait_for_state_change(self.api, server, \u0027ERROR\u0027)"},{"line_number":1696,"context_line":""},{"line_number":1697,"context_line":"        # The allocation should still exist on the source node since it\u0027s"},{"line_number":1698,"context_line":"        # still down, and the allocation on the destination node should be"},{"line_number":1699,"context_line":"        # cleaned up."}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_fc1c80c2","line":1696,"updated":"2017-09-01 15:50:11.000000000","message":"add self._run_periodics() here just to be on the safe side.","commit_id":"22f49705ab48c4d54b693b05ff6869c19b0d3ceb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6712fd40c1637518f0669764e7a26b83855bd3d9","unresolved":false,"context_lines":[{"line_number":1693,"context_line":"            # the migration will fail on the dest node and the instance will"},{"line_number":1694,"context_line":"            # go into error state"},{"line_number":1695,"context_line":"            server \u003d self._wait_for_state_change(self.api, server, \u0027ERROR\u0027)"},{"line_number":1696,"context_line":""},{"line_number":1697,"context_line":"        # The allocation should still exist on the source node since it\u0027s"},{"line_number":1698,"context_line":"        # still down, and the allocation on the destination node should be"},{"line_number":1699,"context_line":"        # cleaned up."}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_176285d9","line":1696,"in_reply_to":"7f287b81_fc1c80c2","updated":"2017-09-01 15:54:47.000000000","message":"Done","commit_id":"22f49705ab48c4d54b693b05ff6869c19b0d3ceb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1d56127dad59914cc6021eb089ee482961dc791f","unresolved":false,"context_lines":[{"line_number":1722,"context_line":"        self.compute1.start()"},{"line_number":1723,"context_line":"        self.admin_api.put_service("},{"line_number":1724,"context_line":"            source_compute_id, {\u0027forced_down\u0027: \u0027false\u0027})"},{"line_number":1725,"context_line":""},{"line_number":1726,"context_line":"        # The source compute shouldn\u0027t have cleaned up the allocation for"},{"line_number":1727,"context_line":"        # itself since the instance didn\u0027t move."},{"line_number":1728,"context_line":"        source_usages \u003d self._get_provider_usages(source_rp_uuid)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_dc778408","line":1725,"updated":"2017-09-01 15:50:11.000000000","message":"ditto","commit_id":"22f49705ab48c4d54b693b05ff6869c19b0d3ceb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6712fd40c1637518f0669764e7a26b83855bd3d9","unresolved":false,"context_lines":[{"line_number":1722,"context_line":"        self.compute1.start()"},{"line_number":1723,"context_line":"        self.admin_api.put_service("},{"line_number":1724,"context_line":"            source_compute_id, {\u0027forced_down\u0027: \u0027false\u0027})"},{"line_number":1725,"context_line":""},{"line_number":1726,"context_line":"        # The source compute shouldn\u0027t have cleaned up the allocation for"},{"line_number":1727,"context_line":"        # itself since the instance didn\u0027t move."},{"line_number":1728,"context_line":"        source_usages \u003d self._get_provider_usages(source_rp_uuid)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_f75ed910","line":1725,"in_reply_to":"7f287b81_dc778408","updated":"2017-09-01 15:54:47.000000000","message":"Done","commit_id":"22f49705ab48c4d54b693b05ff6869c19b0d3ceb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"21028fc85cbde7eb3874788238a5fbb159b3264d","unresolved":false,"context_lines":[{"line_number":1811,"context_line":"        # Run the periodics again to show they don\u0027t change anything."},{"line_number":1812,"context_line":"        self._run_periodics()"},{"line_number":1813,"context_line":""},{"line_number":1814,"context_line":"        # The source compute shouldn\u0027t have cleaned up the allocation for"},{"line_number":1815,"context_line":"        # itself since the instance didn\u0027t move."},{"line_number":1816,"context_line":"        source_usages \u003d self._get_provider_usages(source_rp_uuid)"},{"line_number":1817,"context_line":"        self.assertFlavorMatchesAllocation(self.flavor1, source_usages)"},{"line_number":1818,"context_line":""},{"line_number":1819,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1820,"context_line":"        # FIXME(mriedem): Uncomment when bug 1713786 is fixed."}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_9343c913","line":1817,"range":{"start_line":1814,"start_character":1,"end_line":1817,"end_character":71},"updated":"2017-09-06 14:56:39.000000000","message":"This is similar to the issue in https://review.openstack.org/#/c/499237/ where the evac failed with NoValidHost. There it is still an open question if we want to delete the allocation or not.","commit_id":"0639f56e2ee0afe52ab0c28ec12bafb397ded819"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7e0f58c201e12a88f7d3330bb4a53ba3c5a6b1f1","unresolved":false,"context_lines":[{"line_number":1811,"context_line":"        # Run the periodics again to show they don\u0027t change anything."},{"line_number":1812,"context_line":"        self._run_periodics()"},{"line_number":1813,"context_line":""},{"line_number":1814,"context_line":"        # The source compute shouldn\u0027t have cleaned up the allocation for"},{"line_number":1815,"context_line":"        # itself since the instance didn\u0027t move."},{"line_number":1816,"context_line":"        source_usages \u003d self._get_provider_usages(source_rp_uuid)"},{"line_number":1817,"context_line":"        self.assertFlavorMatchesAllocation(self.flavor1, source_usages)"},{"line_number":1818,"context_line":""},{"line_number":1819,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1820,"context_line":"        # FIXME(mriedem): Uncomment when bug 1713786 is fixed."}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_c28a7662","line":1817,"range":{"start_line":1814,"start_character":1,"end_line":1817,"end_character":71},"in_reply_to":"7f287b81_1b2eb991","updated":"2017-09-07 14:26:36.000000000","message":"I tend to agree with you on https://review.openstack.org/#/c/499237/ after you pointed out the fact that rebuilding the instance on the source node after it\u0027s brought back up, even though we deleted the guest and the source allocation, won\u0027t recreate the allocation on the source node. I can mention that in https://review.openstack.org/#/c/499237/ too.","commit_id":"0639f56e2ee0afe52ab0c28ec12bafb397ded819"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5578ef362aeb90b9d66a23f086b5ad48e569be9b","unresolved":false,"context_lines":[{"line_number":1811,"context_line":"        # Run the periodics again to show they don\u0027t change anything."},{"line_number":1812,"context_line":"        self._run_periodics()"},{"line_number":1813,"context_line":""},{"line_number":1814,"context_line":"        # The source compute shouldn\u0027t have cleaned up the allocation for"},{"line_number":1815,"context_line":"        # itself since the instance didn\u0027t move."},{"line_number":1816,"context_line":"        source_usages \u003d self._get_provider_usages(source_rp_uuid)"},{"line_number":1817,"context_line":"        self.assertFlavorMatchesAllocation(self.flavor1, source_usages)"},{"line_number":1818,"context_line":""},{"line_number":1819,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1820,"context_line":"        # FIXME(mriedem): Uncomment when bug 1713786 is fixed."}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_1b2eb991","line":1817,"range":{"start_line":1814,"start_character":1,"end_line":1817,"end_character":71},"in_reply_to":"7f287b81_477d94b0","updated":"2017-09-07 07:39:36.000000000","message":"OK, this is different. I can accept that the expected behavior in this case to set the migration to failed, delete the dest allocation and keep the source allocation. But then I don\u0027t see why nova should not do the same in case of NoValidHost (https://review.openstack.org/#/c/499237/). i.e. set the migration to failed and keep the source allocation. I can accept both behavior (i.e. either keeping the allocation or deleting the allocation on the source host after a failed evacuate). But I\u0027d like to see that this behavior is the same for both cases as rebuild should work after both cases in the same way.","commit_id":"0639f56e2ee0afe52ab0c28ec12bafb397ded819"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"063f059f4118aefb089d4ae88a94f4315051bae9","unresolved":false,"context_lines":[{"line_number":1811,"context_line":"        # Run the periodics again to show they don\u0027t change anything."},{"line_number":1812,"context_line":"        self._run_periodics()"},{"line_number":1813,"context_line":""},{"line_number":1814,"context_line":"        # The source compute shouldn\u0027t have cleaned up the allocation for"},{"line_number":1815,"context_line":"        # itself since the instance didn\u0027t move."},{"line_number":1816,"context_line":"        source_usages \u003d self._get_provider_usages(source_rp_uuid)"},{"line_number":1817,"context_line":"        self.assertFlavorMatchesAllocation(self.flavor1, source_usages)"},{"line_number":1818,"context_line":""},{"line_number":1819,"context_line":"        allocations \u003d self._get_allocations_by_server_uuid(server[\u0027id\u0027])"},{"line_number":1820,"context_line":"        # FIXME(mriedem): Uncomment when bug 1713786 is fixed."}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_477d94b0","line":1817,"range":{"start_line":1814,"start_character":1,"end_line":1817,"end_character":71},"in_reply_to":"7f287b81_9343c913","updated":"2017-09-06 18:56:40.000000000","message":"This is different. This is a case where we\u0027ve cast to the destination, so the allocation already exists on the destination node. The MoveClaim fails though and we weren\u0027t cleaning up the destination node allocation as a result. So the guest never moved, it was never rebuilt on another host. In this case, the migration record is going to be set to status \u0027failed\u0027 so the source node isn\u0027t going to clean it up:\n\nhttps://github.com/openstack/nova/blob/974c4d93b2b8f015db3b97fce3146cced4bda8e2/nova/compute/manager.py#L2801","commit_id":"0639f56e2ee0afe52ab0c28ec12bafb397ded819"}]}
