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"))
Beispiel #4
0
    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))
Beispiel #7
0
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,