Merge "trivial: Remove FakeScheduler"
This commit is contained in:
commit
916c542b4b
@ -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:
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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()
|
||||
|
@ -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.'
|
||||
|
@ -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)
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user