summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Finucane <sfinucan@redhat.com>2020-02-11 17:16:14 +0000
committerStephen Finucane <sfinucan@redhat.com>2020-02-18 15:13:45 +0000
commita0a88d7c0c4d7470ef86f40b153b3ec606b80537 (patch)
tree1ff0f6ec7c1c02e8ca0a0446cd335142ecbf3812
parente69dbfa0d34d6b3f51282ac0ab51cdab3c2115e4 (diff)
downloadnova-a0a88d7c0c4d7470ef86f40b153b3ec606b80537.tar.gz
trivial: Remove FakeScheduler
We don't need this and it's blocking us from removing pluggable scheduler drivers. Remove it. Change-Id: I61c1a47559645c41089747cc81270848b58b68f9 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
-rw-r--r--nova/conf/scheduler.py9
-rw-r--r--nova/scheduler/manager.py17
-rw-r--r--nova/tests/unit/cmd/test_scheduler.py13
-rw-r--r--nova/tests/unit/scheduler/test_filter_scheduler.py44
-rw-r--r--nova/tests/unit/scheduler/test_manager.py (renamed from nova/tests/unit/scheduler/test_scheduler.py)42
-rw-r--r--setup.cfg1
6 files changed, 45 insertions, 81 deletions
diff --git a/nova/conf/scheduler.py b/nova/conf/scheduler.py
index e82d985510..b90f16c370 100644
--- a/nova/conf/scheduler.py
+++ b/nova/conf/scheduler.py
@@ -32,20 +32,15 @@ of the entrypoints under the namespace 'nova.scheduler.driver' of file
'setup.cfg'. If nothing is specified in this option, the 'filter_scheduler' is
used.
-Other options are:
-
-* 'fake_scheduler' which is used for testing.
-
Possible values:
* Any of the drivers included in Nova:
* filter_scheduler
- * fake_scheduler
* You may also set this to the entry point name of a custom scheduler driver,
- but you will be responsible for creating and maintaining it in your setup.cfg
- file.
+ but you will be responsible for creating and maintaining it in your
+ ``setup.cfg`` file.
Related options:
diff --git a/nova/scheduler/manager.py b/nova/scheduler/manager.py
index 03da353562..5a5577d4c8 100644
--- a/nova/scheduler/manager.py
+++ b/nova/scheduler/manager.py
@@ -55,16 +55,17 @@ class SchedulerManager(manager.Manager):
_sentinel = object()
- def __init__(self, scheduler_driver=None, *args, **kwargs):
+ def __init__(self, *args, **kwargs):
self.placement_client = report.SchedulerReportClient()
- if not scheduler_driver:
- scheduler_driver = CONF.scheduler.driver
self.driver = driver.DriverManager(
- "nova.scheduler.driver",
- scheduler_driver,
- invoke_on_load=True).driver
- super(SchedulerManager, self).__init__(service_name='scheduler',
- *args, **kwargs)
+ 'nova.scheduler.driver',
+ CONF.scheduler.driver,
+ invoke_on_load=True
+ ).driver
+
+ super(SchedulerManager, self).__init__(
+ service_name='scheduler', *args, **kwargs
+ )
@periodic_task.periodic_task(
spacing=CONF.scheduler.discover_hosts_in_cells_interval,
diff --git a/nova/tests/unit/cmd/test_scheduler.py b/nova/tests/unit/cmd/test_scheduler.py
index 01e685d2d4..e207c7343f 100644
--- a/nova/tests/unit/cmd/test_scheduler.py
+++ b/nova/tests/unit/cmd/test_scheduler.py
@@ -46,16 +46,3 @@ class TestScheduler(test.NoDBTestCase):
mock_serve.assert_called_once_with(
service_create.return_value, workers=4)
mock_wait.assert_called_once_with()
-
- @mock.patch('nova.service.Service.create')
- @mock.patch('nova.service.serve')
- @mock.patch('nova.service.wait')
- @mock.patch('oslo_concurrency.processutils.get_worker_count')
- def test_workers_fake_scheduler(self, get_worker_count, mock_wait,
- mock_serve, service_create):
- self.flags(driver='fake_scheduler', group='scheduler')
- scheduler.main()
- get_worker_count.assert_not_called()
- mock_serve.assert_called_once_with(
- service_create.return_value, workers=1)
- mock_wait.assert_called_once_with()
diff --git a/nova/tests/unit/scheduler/test_filter_scheduler.py b/nova/tests/unit/scheduler/test_filter_scheduler.py
index 656f9a416d..7a5e6c232f 100644
--- a/nova/tests/unit/scheduler/test_filter_scheduler.py
+++ b/nova/tests/unit/scheduler/test_filter_scheduler.py
@@ -20,14 +20,15 @@ import mock
from oslo_serialization import jsonutils
from oslo_utils.fixture import uuidsentinel as uuids
+from nova import context
from nova import exception
from nova import objects
from nova.scheduler import filter_scheduler
from nova.scheduler import host_manager
from nova.scheduler import utils as scheduler_utils
from nova.scheduler import weights
+from nova import servicegroup
from nova import test # noqa
-from nova.tests.unit.scheduler import test_scheduler
fake_numa_limit = objects.NUMATopologyLimits(cpu_allocation_ratio=1.0,
@@ -50,18 +51,41 @@ fake_selection = objects.Selection(service_host="fake_host",
allocation_request_version=fake_alloc_version)
-class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
+class FilterSchedulerTestCase(test.NoDBTestCase):
"""Test case for Filter Scheduler."""
- driver_cls = filter_scheduler.FilterScheduler
-
+ @mock.patch.object(host_manager.HostManager, '_init_instance_info',
+ new=mock.Mock())
+ @mock.patch.object(host_manager.HostManager, '_init_aggregates',
+ new=mock.Mock())
+ @mock.patch('nova.scheduler.client.report.SchedulerReportClient',
+ autospec=True, new=mock.Mock())
+ @mock.patch('nova.scheduler.client.query.SchedulerQueryClient',
+ autospec=True, new=mock.Mock())
def setUp(self):
- with mock.patch(
- 'nova.scheduler.client.report.SchedulerReportClient',
- autospec=True), mock.patch(
- 'nova.scheduler.client.query.SchedulerQueryClient',
- autospec=True):
- super(FilterSchedulerTestCase, self).setUp()
+ super(FilterSchedulerTestCase, self).setUp()
+
+ self.driver = filter_scheduler.FilterScheduler()
+ self.context = context.RequestContext('fake_user', 'fake_project')
+ self.topic = 'fake_topic'
+ self.servicegroup_api = servicegroup.API()
+
+ @mock.patch('nova.objects.ServiceList.get_by_topic')
+ @mock.patch('nova.servicegroup.API.service_is_up')
+ def test_hosts_up(self, mock_service_is_up, mock_get_by_topic):
+ service1 = objects.Service(host='host1')
+ service2 = objects.Service(host='host2')
+ services = objects.ServiceList(objects=[service1, service2])
+
+ mock_get_by_topic.return_value = services
+ mock_service_is_up.side_effect = [False, True]
+
+ result = self.driver.hosts_up(self.context, self.topic)
+ self.assertEqual(result, ['host2'])
+
+ mock_get_by_topic.assert_called_once_with(self.context, self.topic)
+ calls = [mock.call(service1), mock.call(service2)]
+ self.assertEqual(calls, mock_service_is_up.call_args_list)
@mock.patch('nova.scheduler.utils.claim_resources')
@mock.patch('nova.scheduler.filter_scheduler.FilterScheduler.'
diff --git a/nova/tests/unit/scheduler/test_scheduler.py b/nova/tests/unit/scheduler/test_manager.py
index 9ee56aeff7..294e752ca7 100644
--- a/nova/tests/unit/scheduler/test_scheduler.py
+++ b/nova/tests/unit/scheduler/test_manager.py
@@ -27,7 +27,6 @@ from nova import objects
from nova.scheduler import filter_scheduler
from nova.scheduler import host_manager
from nova.scheduler import manager
-from nova import servicegroup
from nova import test
from nova.tests.unit import fake_server_actions
from nova.tests.unit.scheduler import fakes
@@ -60,14 +59,11 @@ class SchedulerManagerTestCase(test.NoDBTestCase):
"""Test case for scheduler manager."""
manager_cls = manager.SchedulerManager
- driver_cls = fakes.FakeScheduler
- driver_plugin_name = 'fake_scheduler'
@mock.patch.object(host_manager.HostManager, '_init_instance_info')
@mock.patch.object(host_manager.HostManager, '_init_aggregates')
def setUp(self, mock_init_agg, mock_init_inst):
super(SchedulerManagerTestCase, self).setUp()
- self.flags(driver=self.driver_plugin_name, group='scheduler')
self.manager = self.manager_cls()
self.context = context.RequestContext('fake_user', 'fake_project')
self.topic = 'fake_topic'
@@ -75,11 +71,6 @@ class SchedulerManagerTestCase(test.NoDBTestCase):
self.fake_kwargs = {'cat': 'meow', 'dog': 'woof'}
fake_server_actions.stub_out_action_events(self)
- def test_1_correct_init(self):
- # Correct scheduler driver
- manager = self.manager
- self.assertIsInstance(manager.driver, self.driver_cls)
-
@mock.patch('nova.scheduler.request_filter.process_reqspec')
@mock.patch('nova.scheduler.utils.resources_from_request_spec')
@mock.patch('nova.scheduler.client.report.SchedulerReportClient.'
@@ -448,36 +439,3 @@ class SchedulerManagerTestCase(test.NoDBTestCase):
self.manager._discover_hosts_in_cells(mock.sentinel.context)
mock_log_warning.assert_not_called()
mock_log_debug.assert_called_once_with(msg)
-
-
-class SchedulerTestCase(test.NoDBTestCase):
- """Test case for base scheduler driver class."""
-
- # So we can subclass this test and re-use tests if we need.
- driver_cls = fakes.FakeScheduler
-
- @mock.patch.object(host_manager.HostManager, '_init_instance_info')
- @mock.patch.object(host_manager.HostManager, '_init_aggregates')
- def setUp(self, mock_init_agg, mock_init_inst):
- super(SchedulerTestCase, self).setUp()
- self.driver = self.driver_cls()
- self.context = context.RequestContext('fake_user', 'fake_project')
- self.topic = 'fake_topic'
- self.servicegroup_api = servicegroup.API()
-
- @mock.patch('nova.objects.ServiceList.get_by_topic')
- @mock.patch('nova.servicegroup.API.service_is_up')
- def test_hosts_up(self, mock_service_is_up, mock_get_by_topic):
- service1 = objects.Service(host='host1')
- service2 = objects.Service(host='host2')
- services = objects.ServiceList(objects=[service1, service2])
-
- mock_get_by_topic.return_value = services
- mock_service_is_up.side_effect = [False, True]
-
- result = self.driver.hosts_up(self.context, self.topic)
- self.assertEqual(result, ['host2'])
-
- mock_get_by_topic.assert_called_once_with(self.context, self.topic)
- calls = [mock.call(service1), mock.call(service2)]
- self.assertEqual(calls, mock_service_is_up.call_args_list)
diff --git a/setup.cfg b/setup.cfg
index b9b8f8eeea..04ef128141 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -50,7 +50,6 @@ nova.compute.monitors.cpu =
virt_driver = nova.compute.monitors.cpu.virt_driver:Monitor
nova.scheduler.driver =
filter_scheduler = nova.scheduler.filter_scheduler:FilterScheduler
- fake_scheduler = nova.tests.unit.scheduler.fakes:FakeScheduler
console_scripts =
nova-api = nova.cmd.api:main
nova-api-metadata = nova.cmd.api_metadata:main