From c9f15e3a51658c6b406521d87a95e94f25edf977 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Fri, 3 Aug 2012 15:15:52 -0400 Subject: Use explicit args in run_instance scheduler code. This patch goes through code paths related to run_instance in the scheduler to use explicit arguments instead of **kwargs. I'm trying to work out exactly what data is getting passed through the system when an instance is created, so that I can make the no-db-messaging related changes. This patch helps clarify some things. Part of blueprint no-db-messaging. Change-Id: Id83fc1e399e1d5c75af6dd3c8972b8ba9d706af1 --- nova/tests/scheduler/test_chance_scheduler.py | 29 ++++++++++++++++++--------- nova/tests/scheduler/test_filter_scheduler.py | 14 +++++++------ nova/tests/scheduler/test_scheduler.py | 13 ++++++------ 3 files changed, 34 insertions(+), 22 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/scheduler/test_chance_scheduler.py b/nova/tests/scheduler/test_chance_scheduler.py index eabfa93dc..0a27375df 100644 --- a/nova/tests/scheduler/test_chance_scheduler.py +++ b/nova/tests/scheduler/test_chance_scheduler.py @@ -97,7 +97,10 @@ class ChanceSchedulerTestCase(test_scheduler.SchedulerTestCase): reservations).WithSideEffects(_add_uuid1).AndReturn( instance1) driver.cast_to_compute_host(ctxt, 'host3', 'run_instance', - instance_uuid=instance1['uuid'], **fake_kwargs) + instance_uuid=instance1['uuid'], requested_networks=None, + injected_files=None, admin_password=None, is_first_time=None, + request_spec=request_spec, filter_properties={}) + driver.encode_instance(instance1).AndReturn(instance1_encoded) # instance 2 ctxt.elevated().AndReturn(ctxt_elevated) @@ -108,12 +111,15 @@ class ChanceSchedulerTestCase(test_scheduler.SchedulerTestCase): reservations).WithSideEffects(_add_uuid2).AndReturn( instance2) driver.cast_to_compute_host(ctxt, 'host1', 'run_instance', - instance_uuid=instance2['uuid'], **fake_kwargs) + instance_uuid=instance2['uuid'], requested_networks=None, + injected_files=None, admin_password=None, is_first_time=None, + request_spec=request_spec, filter_properties={}) + driver.encode_instance(instance2).AndReturn(instance2_encoded) self.mox.ReplayAll() - result = self.driver.schedule_run_instance(ctxt, request_spec, - reservations, *fake_args, **fake_kwargs) + result = self.driver.schedule_run_instance(ctxt, None, request_spec, + None, None, None, None, {}, reservations) expected = [instance1_encoded, instance2_encoded] self.assertEqual(result, expected) @@ -155,7 +161,9 @@ class ChanceSchedulerTestCase(test_scheduler.SchedulerTestCase): ctxt, mox.Func(_has_launch_index(0)), None ).WithSideEffects(_add_uuid(1)).AndReturn(instance1) driver.cast_to_compute_host(ctxt, 'host', 'run_instance', - instance_uuid=instance1['uuid']) + instance_uuid=instance1['uuid'], requested_networks=None, + injected_files=None, admin_password=None, is_first_time=None, + request_spec=request_spec, filter_properties={}) driver.encode_instance(instance1).AndReturn(instance1) # instance 2 self.driver._schedule(ctxt, 'compute', request_spec, @@ -164,11 +172,14 @@ class ChanceSchedulerTestCase(test_scheduler.SchedulerTestCase): ctxt, mox.Func(_has_launch_index(1)), None ).WithSideEffects(_add_uuid(2)).AndReturn(instance2) driver.cast_to_compute_host(ctxt, 'host', 'run_instance', - instance_uuid=instance2['uuid']) + instance_uuid=instance2['uuid'], requested_networks=None, + injected_files=None, admin_password=None, is_first_time=None, + request_spec=request_spec, filter_properties={}) driver.encode_instance(instance2).AndReturn(instance2) self.mox.ReplayAll() - self.driver.schedule_run_instance(ctxt, request_spec, None) + self.driver.schedule_run_instance(ctxt, '', request_spec, None, None, + None, None, {}, None) def test_basic_schedule_run_instance_no_hosts(self): ctxt = context.RequestContext('fake', 'fake', False) @@ -189,8 +200,8 @@ class ChanceSchedulerTestCase(test_scheduler.SchedulerTestCase): self.mox.ReplayAll() self.assertRaises(exception.NoValidHost, - self.driver.schedule_run_instance, ctxt, request_spec, - *fake_args, **fake_kwargs) + self.driver.schedule_run_instance, ctxt, '', request_spec, + None, None, None, None, {}, None) def test_basic_schedule_fallback(self): ctxt = context.RequestContext('fake', 'fake', False) diff --git a/nova/tests/scheduler/test_filter_scheduler.py b/nova/tests/scheduler/test_filter_scheduler.py index 648373945..4de0bb645 100644 --- a/nova/tests/scheduler/test_filter_scheduler.py +++ b/nova/tests/scheduler/test_filter_scheduler.py @@ -50,7 +50,8 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase): 'ephemeral_gb': 0}, 'instance_properties': {'project_id': 1}} self.assertRaises(exception.NoValidHost, sched.schedule_run_instance, - fake_context, request_spec, None) + fake_context, '', request_spec, None, None, None, + None, {}, None) def test_run_instance_non_admin(self): """Test creating an instance locally using run_instance, passing @@ -71,7 +72,8 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase): request_spec = {'instance_type': {'memory_mb': 1, 'local_gb': 1}, 'instance_properties': {'project_id': 1}} self.assertRaises(exception.NoValidHost, sched.schedule_run_instance, - fake_context, request_spec, None) + fake_context, '', request_spec, None, None, None, + None, {}, None) self.assertTrue(self.was_admin) def test_schedule_bad_topic(self): @@ -117,16 +119,16 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase): self.driver._provision_resource( ctxt, 'host1', mox.Func(_has_launch_index(0)), None, - {}, fake_kwargs).AndReturn(instance1) + {}, None, None, None, None).AndReturn(instance1) # instance 2 self.driver._provision_resource( ctxt, 'host2', mox.Func(_has_launch_index(1)), None, - {}, fake_kwargs).AndReturn(instance2) + {}, None, None, None, None).AndReturn(instance2) self.mox.ReplayAll() - self.driver.schedule_run_instance(context_fake, request_spec, None, - **fake_kwargs) + self.driver.schedule_run_instance(context_fake, '', request_spec, + None, None, None, None, {}, None) def test_schedule_happy_day(self): """Make sure there's nothing glaringly wrong with _schedule() diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py index c4f30ed74..baf6b3f64 100644 --- a/nova/tests/scheduler/test_scheduler.py +++ b/nova/tests/scheduler/test_scheduler.py @@ -220,17 +220,16 @@ class SchedulerManagerTestCase(test.TestCase): request_spec = {'instance_properties': {'uuid': fake_instance_uuid}} - self.fake_kwargs['request_spec'] = request_spec - self.manager.driver.schedule_run_instance(self.context, - *self.fake_args, **self.fake_kwargs).AndRaise( + self.manager.driver.schedule_run_instance(self.context, self.topic, + request_spec, None, None, None, None, {}, None).AndRaise( exception.NoValidHost(reason="")) db.instance_update_and_get_original(self.context, fake_instance_uuid, {"vm_state": vm_states.ERROR}).AndReturn((inst, inst)) self.mox.ReplayAll() - self.manager.run_instance(self.context, self.topic, - *self.fake_args, **self.fake_kwargs) + self.manager.run_instance(self.context, self.topic, request_spec, + None, None, None, None, {}, None) def test_prep_resize_no_valid_host_back_in_active_state(self): """Test that a NoValidHost exception for prep_resize puts @@ -772,8 +771,8 @@ class SchedulerDriverBaseTestCase(SchedulerTestCase): self.assertRaises(NotImplementedError, self.driver.schedule_run_instance, - self.context, fake_request_spec, - *fake_args, **fake_kwargs) + self.context, '', fake_request_spec, None, None, None, + None, None, None) def test_unimplemented_schedule_prep_resize(self): fake_args = (1, 2, 3) -- cgit