def test_configure_cleanup_scheduler(self, leaf_scheduler_cls): leaf_scheduler = MagicMock() leaf_scheduler_cls.return_value = leaf_scheduler handler = SchedulerHandler() handler.configure([ SchedulerRole("leaf-scheduler", "parent-id", host_children=[ChildInfo(id="foo")]) ]) scheduler = handler._schedulers["leaf-scheduler"] assert_that(scheduler, is_(leaf_scheduler)) handler.configure([]) assert_that(scheduler.cleanup.called, is_(True))
def test_configure_create_branch_scheduler(self, branch_scheduler_cls): branch_scheduler = MagicMock() branch_scheduler_cls.return_value = branch_scheduler handler = SchedulerHandler() assert_that(handler._schedulers, is_(empty())) handler.configure([ SchedulerRole("branch-scheduler", "parent-id", scheduler_children=[ChildInfo(id="foo")]) ]) assert_that(handler._schedulers, has_length(1)) scheduler = handler._schedulers["branch-scheduler"] assert_that(scheduler.id, is_(branch_scheduler.id)) scheduler.configure.assert_called_once_with([ChildInfo(id="foo")])
def test_configure_update_scheduler(self): handler = SchedulerHandler() handler.configure([ SchedulerRole("leaf-scheduler", "parent-id", host_children=[ChildInfo(id="foo")]) ], False) old_scheduler = handler._schedulers["leaf-scheduler"] handler.configure([ SchedulerRole("leaf-scheduler", "parent-id", host_children=[ChildInfo(id="bar")]) ], False) new_scheduler = handler._schedulers["leaf-scheduler"] assert_that(new_scheduler._scheduler_id, equal_to(old_scheduler._scheduler_id)) assert_that(new_scheduler._hosts, has_length(1)) assert_that(new_scheduler._hosts[0].id, equal_to("bar"))
def init(self): # Load agent config config = common.services.get(ServiceName.AGENT_CONFIG) # Create scheduler handler scheduler_handler = SchedulerHandler(config.utilization_transfer_ratio) common.services.register(Scheduler.Iface, scheduler_handler) # Load num_threads num_threads = config.scheduler_service_threads # Define and add thrift service service = common.plugin.ThriftService( name="Scheduler", service=Scheduler, handler=scheduler_handler, num_threads=num_threads, ) self.add_thrift_service(service)
def test_place_missing_scheduler(self): handler = SchedulerHandler() response = handler.place(PlaceRequest(Resource())) assert_that(response.result, is_(PlaceResultCode.INVALID_SCHEDULER))
def test_find_missing_scheduler(self): handler = SchedulerHandler() response = handler.find(FindRequest(Locator())) assert_that(response.result, is_(FindResultCode.INVALID_SCHEDULER))
import common from common.service_name import ServiceName from gen.scheduler import Scheduler from scheduler.scheduler_handler import SchedulerHandler # Load agent config and registrant try: config = common.services.get(ServiceName.AGENT_CONFIG) except Exception as e: raise ImportError(e) # Create scheduler handler scheduler_handler = SchedulerHandler(config.utilization_transfer_ratio) common.services.register(Scheduler.Iface, scheduler_handler) # Load num_threads try: num_threads = config.scheduler_service_threads except Exception as e: raise ImportError(e) # Define scheduler plugin plugin = common.plugin.Plugin( name="Scheduler", service=Scheduler, handler=scheduler_handler, num_threads=num_threads,