summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-10-12 21:07:26 +0000
committerGerrit Code Review <review@openstack.org>2012-10-12 21:07:26 +0000
commit7e2baf3e54d1ef9b1e6aebacb7bee852d8d5be63 (patch)
treec6a7781092daaab440cc31a5f47e0f61352208fa
parent0c45f2a13b0a69d1db228b726ac14a47a86dee0f (diff)
parent9ea41fc80b46b0c5adbab3ea191b92583feb02e0 (diff)
downloadnova-7e2baf3e54d1ef9b1e6aebacb7bee852d8d5be63.tar.gz
nova-7e2baf3e54d1ef9b1e6aebacb7bee852d8d5be63.tar.xz
nova-7e2baf3e54d1ef9b1e6aebacb7bee852d8d5be63.zip
Merge "Migrate DHCP host info during resize"
-rw-r--r--nova/compute/manager.py9
-rw-r--r--nova/tests/compute/test_compute.py12
2 files changed, 19 insertions, 2 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 05112536f..7cd54bd75 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -1469,6 +1469,12 @@ class ComputeManager(manager.SchedulerDependentManager):
self._notify_about_instance_usage(
context, instance, "resize.revert.start")
+ instance = self._instance_update(context,
+ instance['uuid'],
+ host=migration_ref['source_compute'])
+ self.network_api.setup_networks_on_host(context, instance,
+ migration_ref['source_compute'])
+
old_instance_type = migration_ref['old_instance_type_id']
instance_type = instance_types.get_instance_type(old_instance_type)
@@ -1491,7 +1497,6 @@ class ComputeManager(manager.SchedulerDependentManager):
self._instance_update(context,
instance['uuid'],
memory_mb=instance_type['memory_mb'],
- host=migration_ref['source_compute'],
vcpus=instance_type['vcpus'],
root_gb=instance_type['root_gb'],
ephemeral_gb=instance_type['ephemeral_gb'],
@@ -1619,6 +1624,7 @@ class ComputeManager(manager.SchedulerDependentManager):
{'status': 'post-migrating'})
self._instance_update(context, instance['uuid'],
+ host=migration_ref['dest_compute'],
task_state=task_states.RESIZE_MIGRATED,
expected_task_state=task_states.
RESIZE_MIGRATING)
@@ -1681,7 +1687,6 @@ class ComputeManager(manager.SchedulerDependentManager):
instance = self._instance_update(context,
instance['uuid'],
vm_state=vm_states.RESIZED,
- host=migration_ref['dest_compute'],
launched_at=timeutils.utcnow(),
task_state=None,
expected_task_state=task_states.
diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py
index cad27b544..d48edc376 100644
--- a/nova/tests/compute/test_compute.py
+++ b/nova/tests/compute/test_compute.py
@@ -1822,6 +1822,9 @@ class ComputeTestCase(BaseTestCase):
self.compute.resize_instance(context, instance=instance,
migration_id=migration_ref['id'],
image={})
+ inst = db.instance_get_by_uuid(context, instance['uuid'])
+ self.assertEqual(migration_ref['dest_compute'], inst['host'])
+
self.compute.terminate_instance(context,
instance=jsonutils.to_primitive(instance))
@@ -1882,6 +1885,15 @@ class ComputeTestCase(BaseTestCase):
self.compute.revert_resize(context,
migration_id=migration_ref['id'], instance=rpcinst,
reservations=reservations)
+
+ def fake_setup_networks_on_host(cls, ctxt, instance, host):
+ self.assertEqual(host, migration_ref['source_compute'])
+ inst = db.instance_get_by_uuid(ctxt, instance['uuid'])
+ self.assertEqual(host, inst['host'])
+
+ self.stubs.Set(network_api.API, 'setup_networks_on_host',
+ fake_setup_networks_on_host)
+
self.compute.finish_revert_resize(context,
migration_id=migration_ref['id'], instance=rpcinst,
reservations=reservations)