Continuation of I0b540e54dbabd26901a7530035a38583bb521fda * delete scheduler.simple * modify scheduler.multi instead of delete to continue supporting I753e87fc8979fd0b62529974f00cf11fa55b3d63 * update scheduler.multi docstring * scheduler.rpcapi bumped to 2.3 * change default scheduler to scheduler.filter_scheduler DocImpact part of bp delete-nova-volume Change-Id: Ie9d9b46742b2d92cd1e9ffe982ef658907a1d411
		
			
				
	
	
		
			111 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
						|
 | 
						|
# Copyright 2010 United States Government as represented by the
 | 
						|
# Administrator of the National Aeronautics and Space Administration.
 | 
						|
# Copyright 2011 OpenStack LLC
 | 
						|
# All Rights Reserved.
 | 
						|
#
 | 
						|
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
 | 
						|
#    not use this file except in compliance with the License. You may obtain
 | 
						|
#    a copy of the License at
 | 
						|
#
 | 
						|
#         http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
#    Unless required by applicable law or agreed to in writing, software
 | 
						|
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
						|
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
						|
#    License for the specific language governing permissions and limitations
 | 
						|
#    under the License.
 | 
						|
"""
 | 
						|
Tests For Multi Scheduler
 | 
						|
"""
 | 
						|
 | 
						|
from nova.scheduler import driver
 | 
						|
from nova.scheduler import multi
 | 
						|
from nova.tests.scheduler import test_scheduler
 | 
						|
 | 
						|
 | 
						|
class FakeComputeScheduler(driver.Scheduler):
 | 
						|
    is_fake_compute = True
 | 
						|
 | 
						|
    def __init__(self):
 | 
						|
        super(FakeComputeScheduler, self).__init__()
 | 
						|
        self.is_update_caps_called = False
 | 
						|
 | 
						|
    def schedule_theoretical(self, *args, **kwargs):
 | 
						|
        pass
 | 
						|
 | 
						|
 | 
						|
class FakeDefaultScheduler(driver.Scheduler):
 | 
						|
    is_fake_default = True
 | 
						|
 | 
						|
    def __init__(self):
 | 
						|
        super(FakeDefaultScheduler, self).__init__()
 | 
						|
        self.is_update_caps_called = False
 | 
						|
 | 
						|
 | 
						|
class MultiDriverTestCase(test_scheduler.SchedulerTestCase):
 | 
						|
    """Test case for multi driver"""
 | 
						|
 | 
						|
    driver_cls = multi.MultiScheduler
 | 
						|
 | 
						|
    def setUp(self):
 | 
						|
        super(MultiDriverTestCase, self).setUp()
 | 
						|
        base_name = 'nova.tests.scheduler.test_multi_scheduler.%s'
 | 
						|
        compute_cls_name = base_name % 'FakeComputeScheduler'
 | 
						|
        default_cls_name = base_name % 'FakeDefaultScheduler'
 | 
						|
        self.flags(compute_scheduler_driver=compute_cls_name,
 | 
						|
                default_scheduler_driver=default_cls_name)
 | 
						|
        self._manager = multi.MultiScheduler()
 | 
						|
 | 
						|
    def test_drivers_inited(self):
 | 
						|
        mgr = self._manager
 | 
						|
        self.assertEqual(len(mgr.drivers), 2)
 | 
						|
        self.assertTrue(mgr.drivers['compute'].is_fake_compute)
 | 
						|
        self.assertTrue(mgr.drivers['default'].is_fake_default)
 | 
						|
 | 
						|
    def test_update_service_capabilities(self):
 | 
						|
        def fake_update_service_capabilities(self, service, host, caps):
 | 
						|
            self.is_update_caps_called = True
 | 
						|
 | 
						|
        mgr = self._manager
 | 
						|
        self.stubs.Set(driver.Scheduler,
 | 
						|
                       'update_service_capabilities',
 | 
						|
                       fake_update_service_capabilities)
 | 
						|
        self.assertFalse(mgr.drivers['compute'].is_update_caps_called)
 | 
						|
        mgr.update_service_capabilities('foo_svc', 'foo_host', 'foo_caps')
 | 
						|
        self.assertTrue(mgr.drivers['compute'].is_update_caps_called)
 | 
						|
 | 
						|
 | 
						|
class SimpleSchedulerTestCase(MultiDriverTestCase):
 | 
						|
    """Test case for simple driver."""
 | 
						|
 | 
						|
    driver_cls = multi.MultiScheduler
 | 
						|
 | 
						|
    def setUp(self):
 | 
						|
        super(SimpleSchedulerTestCase, self).setUp()
 | 
						|
        base_name = 'nova.tests.scheduler.test_multi_scheduler.%s'
 | 
						|
        compute_cls_name = base_name % 'FakeComputeScheduler'
 | 
						|
        default_cls_name = base_name % 'FakeDefaultScheduler'
 | 
						|
        self.flags(compute_scheduler_driver=compute_cls_name,
 | 
						|
                default_scheduler_driver=default_cls_name)
 | 
						|
        self._manager = multi.MultiScheduler()
 | 
						|
 | 
						|
    def test_update_service_capabilities(self):
 | 
						|
        def fake_update_service_capabilities(self, service, host, caps):
 | 
						|
            self.is_update_caps_called = True
 | 
						|
 | 
						|
        mgr = self._manager
 | 
						|
        self.stubs.Set(driver.Scheduler,
 | 
						|
                       'update_service_capabilities',
 | 
						|
                       fake_update_service_capabilities)
 | 
						|
        self.assertFalse(mgr.drivers['compute'].is_update_caps_called)
 | 
						|
        mgr.update_service_capabilities('foo_svc', 'foo_host', 'foo_caps')
 | 
						|
        self.assertTrue(mgr.drivers['compute'].is_update_caps_called)
 | 
						|
 | 
						|
    def test_drivers_inited(self):
 | 
						|
        mgr = self._manager
 | 
						|
        self.assertEqual(len(mgr.drivers), 2)
 | 
						|
        self.assertTrue(mgr.drivers['compute'].is_fake_compute)
 | 
						|
        self.assertTrue(mgr.drivers['default'].is_fake_default)
 |