diff options
-rwxr-xr-x | nova/compute/manager.py | 4 | ||||
-rw-r--r-- | nova/conductor/manager.py | 5 | ||||
-rw-r--r-- | nova/conductor/rpcapi.py | 6 | ||||
-rw-r--r-- | nova/tests/compute/test_compute.py | 34 |
4 files changed, 30 insertions, 19 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 0a6a9d08d..237831cd1 100755 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -3707,8 +3707,8 @@ class ComputeManager(manager.SchedulerDependentManager): {'migration_id': migration['id'], 'instance_uuid': instance_uuid}) try: - instance = self.conductor_api.instance_get_by_uuid( - context, instance_uuid) + instance = instance_obj.Instance.get_by_uuid(context, + instance_uuid) except exception.InstanceNotFound: reason = (_("Instance %s not found") % instance_uuid) diff --git a/nova/conductor/manager.py b/nova/conductor/manager.py index b794c8b9f..cc1b05cc4 100644 --- a/nova/conductor/manager.py +++ b/nova/conductor/manager.py @@ -66,7 +66,7 @@ class ConductorManager(manager.Manager): namespace. See the ComputeTaskManager class for details. """ - RPC_API_VERSION = '1.51' + RPC_API_VERSION = '1.52' def __init__(self, *args, **kwargs): super(ConductorManager, self).__init__(service_name='conductor', @@ -475,6 +475,9 @@ class ConductorManager(manager.Manager): self.compute_api.stop(context, instance, do_cast) def compute_confirm_resize(self, context, instance, migration_ref): + if isinstance(instance, nova_object.NovaObject): + # NOTE(danms): Remove this at RPC API v2.0 + instance = dict(instance.items()) self.compute_api.confirm_resize(context, instance, migration_ref) def compute_unrescue(self, context, instance): diff --git a/nova/conductor/rpcapi.py b/nova/conductor/rpcapi.py index bb66ca8b2..fcbb87f0e 100644 --- a/nova/conductor/rpcapi.py +++ b/nova/conductor/rpcapi.py @@ -102,6 +102,7 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy): 1.50 - Added object_action() and object_class_action() 1.51 - Added the 'legacy' argument to block_device_mapping_get_all_by_instance + 1.52 - Pass instance objects for compute_confirm_resize """ BASE_RPC_API_VERSION = '1.0' @@ -459,11 +460,10 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy): return self.call(context, msg, version='1.43') def compute_confirm_resize(self, context, instance, migration_ref): - instance_p = jsonutils.to_primitive(instance) migration_p = jsonutils.to_primitive(migration_ref) - msg = self.make_msg('compute_confirm_resize', instance=instance_p, + msg = self.make_msg('compute_confirm_resize', instance=instance, migration_ref=migration_p) - return self.call(context, msg, version='1.46') + return self.call(context, msg, version='1.52') def compute_unrescue(self, context, instance): instance_p = jsonutils.to_primitive(instance) diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py index dc828cef8..928934f61 100644 --- a/nova/tests/compute/test_compute.py +++ b/nova/tests/compute/test_compute.py @@ -4441,19 +4441,27 @@ class ComputeTestCase(BaseTestCase): self.assertTrue(instance) def test_poll_unconfirmed_resizes(self): - instances = [{'uuid': 'fake_uuid1', 'vm_state': vm_states.RESIZED, - 'task_state': None}, - {'uuid': 'noexist'}, - {'uuid': 'fake_uuid2', 'vm_state': vm_states.ERROR, - 'task_state': None}, - {'uuid': 'fake_uuid3', 'vm_state': vm_states.ACTIVE, - 'task_state': task_states.REBOOTING}, - {'uuid': 'fake_uuid4', 'vm_state': vm_states.RESIZED, - 'task_state': None}, - {'uuid': 'fake_uuid5', 'vm_state': vm_states.ACTIVE, - 'task_state': None}, - {'uuid': 'fake_uuid6', 'vm_state': vm_states.RESIZED, - 'task_state': 'deleting'}] + instances = [ + fake_instance.fake_db_instance(uuid='fake_uuid1', + vm_state=vm_states.RESIZED, + task_state=None), + fake_instance.fake_db_instance(uuid='noexist'), + fake_instance.fake_db_instance(uuid='fake_uuid2', + vm_state=vm_states.ERROR, + task_state=None), + fake_instance.fake_db_instance(uuid='fake_uuid3', + vm_state=vm_states.ACTIVE, + task_state= + task_states.REBOOTING), + fake_instance.fake_db_instance(uuid='fake_uuid4', + vm_state=vm_states.RESIZED, + task_state=None), + fake_instance.fake_db_instance(uuid='fake_uuid5', + vm_state=vm_states.ACTIVE, + task_state=None), + fake_instance.fake_db_instance(uuid='fake_uuid6', + vm_state=vm_states.RESIZED, + task_state='deleting')] expected_migration_status = {'fake_uuid1': 'confirmed', 'noexist': 'error', 'fake_uuid2': 'error', |