summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorJian Wen <wenjianhn@gmail.com>2012-09-21 17:30:18 +0800
committerJian Wen <wenjianhn@gmail.com>2012-10-24 10:22:53 +0800
commitdf1fb2978c854beb58646406796c2bef2bfb047f (patch)
tree64fa9d7d86fe49d46dbd69b26b824581a4ef807d /nova/compute
parenta3d27d189258e2684581bf5e6a1961332e6d44bb (diff)
Migrate network of an instance
In multi_host mode, floating ip(s) addr and NAT rules are still on source node after resize/migrate instance. This patch fixes it up by adding new methods in network.api to moving them to the destination node. Also adds the new methods to network/quantumv2/api.py. They do nothing but pass for now. This patch updates network RPC API to version 1.1 Fixes bug 1053344 Change-Id: If9f30050d37831f108ac4a1c8a018d820818f3b6
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/manager.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 515737992..eae7149e9 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -1471,6 +1471,11 @@ class ComputeManager(manager.SchedulerDependentManager):
self.network_api.setup_networks_on_host(context, instance,
teardown=True)
+ if migration_ref['dest_compute'] != \
+ migration_ref['source_compute']:
+ self.network_api.migrate_instance_start(context, instance,
+ migration_ref['dest_compute'])
+
network_info = self._get_instance_nw_info(context, instance)
block_device_info = self._get_instance_volume_block_device_info(
context, instance['uuid'])
@@ -1532,6 +1537,11 @@ class ComputeManager(manager.SchedulerDependentManager):
self._legacy_nw_info(network_info),
block_device_info)
+ if migration_ref['dest_compute'] != \
+ migration_ref['source_compute']:
+ self.network_api.migrate_instance_finish(context, instance,
+ migration_ref['source_compute'])
+
# Just roll back the record. There's no need to resize down since
# the 'old' VM already has the preferred attributes
self._instance_update(context,
@@ -1659,6 +1669,11 @@ class ComputeManager(manager.SchedulerDependentManager):
self.volume_api.terminate_connection(context, volume,
connector)
+ if migration_ref['dest_compute'] != \
+ migration_ref['source_compute']:
+ self.network_api.migrate_instance_start(context, instance,
+ self.host)
+
self.db.migration_update(context,
migration_id,
{'status': 'post-migrating'})
@@ -1697,6 +1712,11 @@ class ComputeManager(manager.SchedulerDependentManager):
self.network_api.setup_networks_on_host(context, instance,
migration_ref['dest_compute'])
+ if migration_ref['dest_compute'] != \
+ migration_ref['source_compute']:
+ self.network_api.migrate_instance_finish(context, instance,
+ migration_ref['dest_compute'])
+
network_info = self._get_instance_nw_info(context, instance)
self._instance_update(context, instance['uuid'],