def test_create_normal_scheduling_no_estimate_provided(self):
     input_provider = Mock()
     input_provider.sched_params = SchedulerParameters()
     with patch('adaptive_scheduler.scheduler_input.SchedulingInputFactory._create_scheduling_input',
                self.create_input_mock, create=True):
         factory = SchedulingInputFactory(input_provider)
         factory.create_normal_scheduling_input()
         assert_equal(1, input_provider.set_normal_mode.call_count)
         assert_equal(0, input_provider.set_normal_run_time.call_count)
 def test_create_rr_scheduling(self):
     input_provider = Mock()
     input_provider.sched_params = SchedulerParameters()
     input_provider.json_request_group_list = []
     with patch('adaptive_scheduler.scheduler_input.SchedulingInputFactory._create_scheduling_input',
                self.create_input_mock, create=True):
         factory = SchedulingInputFactory(input_provider)
         factory.create_rr_scheduling_input(100)
         assert_equal(1, input_provider.set_rr_mode.call_count)
         assert_equal(1, input_provider.set_rr_run_time.call_count)
         assert_equal(100, input_provider.set_rr_run_time.call_args[0][0])
コード例 #3
0
def main(argv):
    sched_params = parse_args(argv)
    log.info("Starting Adaptive Scheduler, version {v}".format(v=VERSION))

    event_bus = get_eventbus()
    user_feedback_logger = UserFeedbackLogger()
    timing_logger = TimingLogger()
    event_bus.add_listener(user_feedback_logger, persist=True)
    event_bus.add_listener(timing_logger, persist=True,
                           event_type=TimingLogger._StartEvent)
    event_bus.add_listener(timing_logger, persist=True,
                           event_type=TimingLogger._EndEvent)

    schedule_interface = ObservationScheduleInterface(host=sched_params.observation_portal_url)
    observation_portal_interface = ObservationPortalInterface(sched_params.observation_portal_url)
    configdb_interface = ConfigDBInterface(configdb_url=sched_params.configdb_url, telescope_classes=sched_params.telescope_classes)
    network_state_interface = Network(configdb_interface, sched_params)
    network_interface = NetworkInterface(schedule_interface, observation_portal_interface, network_state_interface,
                                         configdb_interface)

    kernel_class = get_kernel_class(sched_params)
    network_model = configdb_interface.get_telescope_info()
    scheduler = LCOGTNetworkScheduler(kernel_class, sched_params, event_bus, network_model)
    if sched_params.input_file_name:
        input_provider = FileBasedSchedulingInputProvider(sched_params.input_file_name, network_interface,
                                                          is_rr_mode=True)
    else:
        input_provider = SchedulingInputProvider(sched_params, network_interface, network_model, is_rr_input=True)
    input_factory = SchedulingInputFactory(input_provider)
    scheduler_runner = SchedulerRunner(sched_params, scheduler, network_interface, network_model, input_factory)
    scheduler_runner.run()
コード例 #4
0
 def test_constructor(self):
     input_provider = Mock()
     factory = SchedulingInputFactory(input_provider)
     assert_equal(input_provider, factory.input_provider)