summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/compute/manager.py20
-rw-r--r--nova/compute/rpcapi.py7
-rw-r--r--nova/tests/compute/test_rpcapi.py9
3 files changed, 22 insertions, 14 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 1a423a3c8..bb1e754d9 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -297,7 +297,7 @@ def _get_additional_capabilities():
class ComputeManager(manager.SchedulerDependentManager):
"""Manages the running instances from creation to destruction."""
- RPC_API_VERSION = '1.11'
+ RPC_API_VERSION = '1.12'
def __init__(self, compute_driver=None, *args, **kwargs):
"""Load configuration options and connect to the hypervisor."""
@@ -1399,25 +1399,27 @@ class ComputeManager(manager.SchedulerDependentManager):
@exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
@checks_instance_lock
@wrap_instance_fault
- def confirm_resize(self, context, instance_uuid, migration_id):
+ def confirm_resize(self, context, migration_id, instance_uuid=None,
+ instance=None):
"""Destroys the source instance."""
migration_ref = self.db.migration_get(context, migration_id)
- instance_ref = self.db.instance_get_by_uuid(context,
- migration_ref.instance_uuid)
+ if not instance:
+ instance = self.db.instance_get_by_uuid(context,
+ migration_ref.instance_uuid)
- self._notify_about_instance_usage(context, instance_ref,
+ self._notify_about_instance_usage(context, instance,
"resize.confirm.start")
# NOTE(tr3buchet): tear down networks on source host
- self.network_api.setup_networks_on_host(context, instance_ref,
+ self.network_api.setup_networks_on_host(context, instance,
migration_ref['source_compute'], teardown=True)
- network_info = self._get_instance_nw_info(context, instance_ref)
- self.driver.confirm_migration(migration_ref, instance_ref,
+ network_info = self._get_instance_nw_info(context, instance)
+ self.driver.confirm_migration(migration_ref, instance,
self._legacy_nw_info(network_info))
self._notify_about_instance_usage(
- context, instance_ref, "resize.confirm.end",
+ context, instance, "resize.confirm.end",
network_info=network_info)
@exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
diff --git a/nova/compute/rpcapi.py b/nova/compute/rpcapi.py
index 19c72bd08..aabafb10b 100644
--- a/nova/compute/rpcapi.py
+++ b/nova/compute/rpcapi.py
@@ -72,6 +72,7 @@ class ComputeAPI(nova.openstack.common.rpc.proxy.RpcProxy):
check_can_live_migrate_destination()
1.11 - Remove instance_id, add instance argument to
check_can_live_migrate_source()
+ 1.12 - Remove instance_uuid, add instance argument to confirm_resize()
'''
BASE_RPC_API_VERSION = '1.0'
@@ -130,9 +131,11 @@ class ComputeAPI(nova.openstack.common.rpc.proxy.RpcProxy):
def confirm_resize(self, ctxt, instance, migration_id, host,
cast=True):
rpc_method = self.cast if cast else self.call
+ instance_p = jsonutils.to_primitive(instance)
return rpc_method(ctxt, self.make_msg('confirm_resize',
- instance_uuid=instance['uuid'], migration_id=migration_id),
- topic=_compute_topic(self.topic, ctxt, host, instance))
+ instance=instance_p, migration_id=migration_id),
+ topic=_compute_topic(self.topic, ctxt, host, instance),
+ version='1.12')
def detach_volume(self, ctxt, instance, volume_id):
self.cast(ctxt, self.make_msg('detach_volume',
diff --git a/nova/tests/compute/test_rpcapi.py b/nova/tests/compute/test_rpcapi.py
index 9be465ca9..4ef6254fd 100644
--- a/nova/tests/compute/test_rpcapi.py
+++ b/nova/tests/compute/test_rpcapi.py
@@ -51,7 +51,8 @@ class ComputeRpcAPITestCase(test.TestCase):
methods_with_instance = [
'add_fixed_ip_to_instance', 'attach_volume',
'check_can_live_migrate_destination',
- 'check_can_live_migrate_source', 'get_console_output',
+ 'check_can_live_migrate_source', 'confirm_resize',
+ 'get_console_output',
'pause_instance', 'reboot_instance', 'suspend_instance',
'unpause_instance'
]
@@ -145,11 +146,13 @@ class ComputeRpcAPITestCase(test.TestCase):
def test_confirm_resize_cast(self):
self._test_compute_api('confirm_resize', 'cast',
- instance=self.fake_instance, migration_id='id', host='host')
+ instance=self.fake_instance, migration_id='id', host='host',
+ version='1.12')
def test_confirm_resize_call(self):
self._test_compute_api('confirm_resize', 'call',
- instance=self.fake_instance, migration_id='id', host='host')
+ instance=self.fake_instance, migration_id='id', host='host',
+ version='1.12')
def test_detach_volume(self):
self._test_compute_api('detach_volume', 'cast',