From 8ac2e27143b8961b2746514e3df605f1f3b7fb52 Mon Sep 17 00:00:00 2001 From: Clay Gerrard Date: Fri, 24 Aug 2012 17:54:20 -0500 Subject: request_spec['instance_uuids'] as list in resize Wrap instance['uuid'] in a list when building request_spec in compute.api before sending it across to the scheduler on resize regression introduced in I63bbc98c285faebec53f8e62857c01548807db68 fixes bug 1041351 Change-Id: I7cad8316171798e240bf78999cb94730c587a904 --- nova/compute/api.py | 2 +- nova/tests/compute/test_compute.py | 7 +++++++ nova/tests/scheduler/test_scheduler.py | 5 +++-- 3 files changed, 11 insertions(+), 3 deletions(-) (limited to 'nova') diff --git a/nova/compute/api.py b/nova/compute/api.py index 205f59667..dcc6a7f06 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -1499,7 +1499,7 @@ class API(base.Base): request_spec = { 'instance_type': new_instance_type, - 'instance_uuids': instance['uuid'], + 'instance_uuids': [instance['uuid']], 'instance_properties': instance} filter_properties = {'ignore_hosts': []} diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py index c28d2bd2f..822c23e03 100644 --- a/nova/tests/compute/test_compute.py +++ b/nova/tests/compute/test_compute.py @@ -3331,6 +3331,12 @@ class ComputeAPITestCase(BaseTestCase): request_spec = msg['args']['request_spec'] filter_properties = msg['args']['filter_properties'] instance_properties = request_spec['instance_properties'] + # resize with flavor_id = None will still send instance_type + self.assertEqual(request_spec['instance_type'], + orig_instance_type) + self.assertEqual(request_spec['instance_uuids'], + [instance['uuid']]) + self.assertEqual(instance_properties['uuid'], instance['uuid']) self.assertEqual(instance_properties['host'], 'host2') # Ensure the instance passed to us has been updated with # progress set to 0 and task_state set to RESIZE_PREP. @@ -3345,6 +3351,7 @@ class ComputeAPITestCase(BaseTestCase): instance = self._create_fake_instance(dict(host='host2')) instance = db.instance_get_by_uuid(context, instance['uuid']) instance = jsonutils.to_primitive(instance) + orig_instance_type = instance['instance_type'] self.compute.run_instance(self.context, instance=instance) # We need to set the host to something 'known'. Unfortunately, # the compute manager is using a cached copy of FLAGS.host, diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py index bbb63ab51..d5e86fe1b 100644 --- a/nova/tests/scheduler/test_scheduler.py +++ b/nova/tests/scheduler/test_scheduler.py @@ -241,8 +241,9 @@ class SchedulerManagerTestCase(test.TestCase): self.mox.StubOutWithMock(db, 'instance_update_and_get_original') - request_spec = {'instance_properties': - {'uuid': fake_instance_uuid}} + request_spec = {'instance_type': 'fake_type', + 'instance_uuids': [fake_instance_uuid], + 'instance_properties': {'uuid': fake_instance_uuid}} kwargs = { 'context': self.context, 'image': 'fake_image', -- cgit