summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-11-05 23:41:59 +0000
committerGerrit Code Review <review@openstack.org>2012-11-05 23:41:59 +0000
commit90808d745500960eebf8b36ed93df29971d45275 (patch)
tree3ebd8f94e75b20faf2ef979587dde7419c691a4b
parent33c4e6bd0b735d2dfb7ca032fcd834639e23cb2e (diff)
parentdf744204b334f68edc34f703a1a7b89840b0d9ad (diff)
Merge "Send all migration data to revert_resize."
-rw-r--r--nova/compute/api.py2
-rw-r--r--nova/compute/manager.py15
-rw-r--r--nova/compute/rpcapi.py9
-rw-r--r--nova/tests/compute/test_rpcapi.py4
4 files changed, 17 insertions, 13 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index f72387f30..e7abeee9d 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -1558,7 +1558,7 @@ class API(base.Base):
expected_task_state=None)
self.compute_rpcapi.revert_resize(context,
- instance=instance, migration_id=migration_ref['id'],
+ instance=instance, migration=migration_ref,
host=migration_ref['dest_compute'], reservations=reservations)
self.db.migration_update(elevated, migration_ref['id'],
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 39c3faddf..b9f301ba1 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -230,7 +230,7 @@ class ComputeVirtAPI(virtapi.VirtAPI):
class ComputeManager(manager.SchedulerDependentManager):
"""Manages the running instances from creation to destruction."""
- RPC_API_VERSION = '2.11'
+ RPC_API_VERSION = '2.12'
def __init__(self, compute_driver=None, *args, **kwargs):
"""Load configuration options and connect to the hypervisor."""
@@ -1532,16 +1532,17 @@ class ComputeManager(manager.SchedulerDependentManager):
@exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
@reverts_task_state
@wrap_instance_fault
- def revert_resize(self, context, instance, migration_id,
- reservations=None):
+ def revert_resize(self, context, instance, migration=None,
+ migration_id=None, reservations=None):
"""Destroys the new instance on the destination machine.
Reverts the model changes, and powers on the old instance on the
source machine.
"""
- migration_ref = self.db.migration_get(context.elevated(),
- migration_id)
+ if not migration:
+ migration = self.db.migration_get(context.elevated(),
+ migration_id)
# NOTE(comstud): A revert_resize is essentially a resize back to
# the old size, so we need to send a usage event here.
@@ -1555,7 +1556,7 @@ class ComputeManager(manager.SchedulerDependentManager):
teardown=True)
self.network_api.migrate_instance_start(context, instance,
- migration_ref)
+ migration)
network_info = self._get_instance_nw_info(context, instance)
block_device_info = self._get_instance_volume_block_device_info(
@@ -1567,7 +1568,7 @@ class ComputeManager(manager.SchedulerDependentManager):
self._terminate_volume_connections(context, instance)
self.compute_rpcapi.finish_revert_resize(context, instance,
- migration_ref['id'], migration_ref['source_compute'],
+ migration['id'], migration['source_compute'],
reservations)
@exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
diff --git a/nova/compute/rpcapi.py b/nova/compute/rpcapi.py
index e42e025dc..6785ab23f 100644
--- a/nova/compute/rpcapi.py
+++ b/nova/compute/rpcapi.py
@@ -139,6 +139,7 @@ class ComputeAPI(nova.openstack.common.rpc.proxy.RpcProxy):
2.9 - Add publish_service_capabilities()
2.10 - Adds filter_properties and request_spec to prep_resize()
2.11 - Adds soft_delete_instance() and restore_instance()
+ 2.12 - Remove migration_id, add migration to revert_resize
'''
#
@@ -441,13 +442,15 @@ class ComputeAPI(nova.openstack.common.rpc.proxy.RpcProxy):
instance=instance_p),
topic=_compute_topic(self.topic, ctxt, None, instance))
- def revert_resize(self, ctxt, instance, migration_id, host,
+ def revert_resize(self, ctxt, instance, migration, host,
reservations=None):
instance_p = jsonutils.to_primitive(instance)
+ migration_p = jsonutils.to_primitive(migration)
self.cast(ctxt, self.make_msg('revert_resize',
- instance=instance_p, migration_id=migration_id,
+ instance=instance_p, migration=migration_p,
reservations=reservations),
- topic=_compute_topic(self.topic, ctxt, host, instance))
+ topic=_compute_topic(self.topic, ctxt, host, instance),
+ version='2.12')
def rollback_live_migration_at_destination(self, ctxt, instance, host):
instance_p = jsonutils.to_primitive(instance)
diff --git a/nova/tests/compute/test_rpcapi.py b/nova/tests/compute/test_rpcapi.py
index f94cca857..14b416a5b 100644
--- a/nova/tests/compute/test_rpcapi.py
+++ b/nova/tests/compute/test_rpcapi.py
@@ -293,8 +293,8 @@ class ComputeRpcAPITestCase(test.TestCase):
def test_revert_resize(self):
self._test_compute_api('revert_resize', 'cast',
- instance=self.fake_instance, migration_id='id', host='host',
- reservations=list('fake_res'))
+ instance=self.fake_instance, migration={'id': 'fake_id'},
+ host='host', reservations=list('fake_res'), version='2.12')
def test_rollback_live_migration_at_destination(self):
self._test_compute_api('rollback_live_migration_at_destination',