diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 36199be5970b..11668bd002ff 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -5409,9 +5409,6 @@ class ComputeManager(manager.Manager): migrate_data=migrate_data, destroy_vifs=destroy_vifs) - # NOTE(tr3buchet): tear down networks on source host - self.network_api.setup_networks_on_host(ctxt, instance, - self.host, teardown=True) self.instance_events.clear_events_for_instance(instance) # NOTE(timello): make sure we update available resources on source @@ -5477,6 +5474,7 @@ class ComputeManager(manager.Manager): # Restore instance state current_power_state = self._get_power_state(context, instance) node_name = None + prev_host = instance.host try: compute_node = self._get_compute_info(context, self.host) node_name = compute_node.hypervisor_hostname @@ -5489,6 +5487,9 @@ class ComputeManager(manager.Manager): instance.node = node_name instance.save(expected_task_state=task_states.MIGRATING) + # NOTE(tr3buchet): tear down networks on source host + self.network_api.setup_networks_on_host(context, instance, + prev_host, teardown=True) # NOTE(vish): this is necessary to update dhcp self.network_api.setup_networks_on_host(context, instance, self.host) self._notify_about_instance_usage( diff --git a/nova/tests/unit/compute/test_compute.py b/nova/tests/unit/compute/test_compute.py index c69ba7ccb3f3..f761d1c3d321 100644 --- a/nova/tests/unit/compute/test_compute.py +++ b/nova/tests/unit/compute/test_compute.py @@ -5616,9 +5616,6 @@ class ComputeTestCase(BaseTestCase): self.mox.StubOutWithMock(self.compute.network_api, 'setup_networks_on_host') - self.compute.network_api.setup_networks_on_host(c, instance, - instance['host'], - teardown=True) self.mox.StubOutWithMock(self.compute.instance_events, 'clear_events_for_instance') self.compute.instance_events.clear_events_for_instance( @@ -5678,9 +5675,6 @@ class ComputeTestCase(BaseTestCase): self.mox.StubOutWithMock(self.compute.network_api, 'setup_networks_on_host') - self.compute.network_api.setup_networks_on_host(c, instance, - self.compute.host, - teardown=True) self.mox.StubOutWithMock(self.compute.instance_events, 'clear_events_for_instance') self.compute.instance_events.clear_events_for_instance( @@ -5747,8 +5741,6 @@ class ComputeTestCase(BaseTestCase): mock.call(c, instance, False, dest)]) post_live_migration_at_source.assert_has_calls( [mock.call(c, instance, [])]) - setup_networks_on_host.assert_has_calls([ - mock.call(c, instance, self.compute.host, teardown=True)]) clear_events.assert_called_once_with(instance) update_available_resource.assert_has_calls([mock.call(c)]) @@ -5833,6 +5825,8 @@ class ComputeTestCase(BaseTestCase): self.instance).AndReturn(10001) def _finish_post_live_migration_at_destination(self): + self.compute.network_api.setup_networks_on_host(self.admin_ctxt, + mox.IgnoreArg(), mox.IgnoreArg(), teardown=True) self.compute.network_api.setup_networks_on_host(self.admin_ctxt, mox.IgnoreArg(), self.compute.host)