Ejemplo n.º 1
0
    def test_scheduler_manager_singleton(self):
        first_instance = schedule_manager.SchedulerManager().get_scheduler()
        self.assertIsInstance(first_instance, BackgroundScheduler)

        second_instance = schedule_manager.SchedulerManager().get_scheduler()
        self.assertIsInstance(second_instance, BackgroundScheduler)

        self.assertEqual(first_instance, second_instance)
Ejemplo n.º 2
0
 def test_on_node_leave(self, mock_task_get_all, mock_distribute_new_job):
     mock_task_get_all.return_value = FAKE_TASKS
     manager = schedule_manager.SchedulerManager()
     manager.on_node_leave(
         mock.Mock(member_id=b'fake_member_id', group_id='fake_group_id'))
     self.assertEqual(mock_task_get_all.call_count, 1)
     self.assertEqual(mock_distribute_new_job.call_count, len(FAKE_TASKS))
 def __init__(self, ctx, task_id, storage_id, args, interval, executor):
     self.ctx = ctx
     self.task_id = task_id
     self.storage_id = storage_id
     self.args = args
     self.interval = interval
     self.metric_task_rpcapi = metrics_task_rpcapi.TaskAPI()
     self.driver_api = driverapi.API()
     self.executor = executor
     self.scheduler = schedule_manager.SchedulerManager().get_scheduler()
Ejemplo n.º 4
0
 def __init__(self, ctx, task_id, storage_id, args, interval):
     # create an object of periodic task scheduler
     self.ctx = ctx
     self.task_id = task_id
     self.storage_id = storage_id
     self.args = args
     self.interval = interval
     self.task_rpcapi = task_rpcapi.TaskAPI()
     self.scheduler = schedule_manager.SchedulerManager().get_scheduler()
     self.stopped = False
     self.job_ids = set()
 def __init__(self, ctx, failed_task_id, storage_id, args, job_id,
              retry_count, start_time, end_time, executor):
     self.ctx = ctx
     self.failed_task_id = failed_task_id
     self.retry_count = retry_count
     self.storage_id = storage_id
     self.job_id = job_id
     self.args = args
     self.start_time = start_time
     self.end_time = end_time
     self.metrics_task_rpcapi = metrics_task_rpcapi.TaskAPI()
     self.scheduler_instance = \
         schedule_manager.SchedulerManager().get_scheduler()
     self.result = TelemetryJobStatus.FAILED_JOB_STATUS_INIT
     self.executor = executor
Ejemplo n.º 6
0
 def __init__(self, service_name=None, *args, **kwargs):
     super(MetricsTaskManager, self).__init__(*args, **kwargs)
     scheduler = schedule_manager.SchedulerManager()
     scheduler.start()
     partitioner = ConsistentHashing()
     partitioner.start()
     partitioner.join_group()
     self.watch_job_id = None
     self.cleanup_job_id = None
     self.group = None
     self.watcher = None
     self.scheduler = None
     self.rpcapi = rpcapi.SubprocessAPI()
     self.executor_map = {}
     self.enable_sub_process = CONF.telemetry.enable_dynamic_subprocess
     if self.enable_sub_process:
         self.scheduler = BackgroundScheduler()
         self.scheduler.start()
     self.schedule_boot_jobs(self.host)
Ejemplo n.º 7
0
 def test_on_node_join(self, mock_task_get_all, mock_distribute_new_job,
                       mock_remove_job, mock_get_task_executor):
     node1_job_count = 0
     node2_job_count = 0
     for job in FAKE_TASKS:
         if job['executor'] == 'node1':
             node1_job_count += 1
         elif job['executor'] == 'node2':
             node2_job_count += 1
     mock_task_get_all.return_value = FAKE_TASKS
     mock_get_task_executor.return_value = 'node1'
     manager = schedule_manager.SchedulerManager()
     manager.on_node_join(
         mock.Mock(member_id=b'fake_member_id', group_id='node1'))
     self.assertEqual(mock_task_get_all.call_count, 1)
     self.assertEqual(mock_distribute_new_job.call_count,
                      node1_job_count + node2_job_count)
     self.assertEqual(mock_remove_job.call_count, node2_job_count)
     self.assertEqual(mock_get_task_executor.call_count,
                      node1_job_count + node2_job_count)
Ejemplo n.º 8
0
 def start(self):
     super(TaskService, self).start()
     schedule_manager.SchedulerManager().start()
Ejemplo n.º 9
0
 def __init__(self, ctx):
     # create an object of periodic failed task scheduler
     self.scheduler = schedule_manager.SchedulerManager().get_scheduler()
     self.ctx = ctx
     self.stopped = False
     self.job_ids = set()
Ejemplo n.º 10
0
 def test_recover_job(self, mock_task_get_all, mock_distribute_new_job):
     mock_task_get_all.return_value = FAKE_TASKS
     manager = schedule_manager.SchedulerManager()
     manager.recover_job()
     self.assertEqual(mock_task_get_all.call_count, 1)
     self.assertEqual(mock_distribute_new_job.call_count, len(FAKE_TASKS))
Ejemplo n.º 11
0
 def test_start(self, mock_scheduler_start):
     manager = schedule_manager.SchedulerManager()
     manager.start()
     self.assertEqual(mock_scheduler_start.call_count, 1)
     manager.start()
     self.assertEqual(mock_scheduler_start.call_count, 1)
Ejemplo n.º 12
0
 def init_scheduler(self, topic, host):
     scheduler = schedule_manager.SchedulerManager()
     scheduler.start()
     watcher = GroupMembership(topic)
     watcher.start()
     watcher.join_group(host)