summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xnova/compute/manager.py4
-rw-r--r--nova/conductor/manager.py5
-rw-r--r--nova/conductor/rpcapi.py6
-rw-r--r--nova/tests/compute/test_compute.py34
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 3b8c5f55d..77a38e4d6 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',