Example #1
0
    def __init__(self, **options):
        super(Pool, self).__init__(**options)
        self.unassigned = []  # unassigned tasks
        self.task_assign_cnt = {}  # uid: times_assigned
        self.should_reschedule = default_check_reschedule
        self._workers = entity.Environment(parent=self)
        self._workers_last_result = {}
        self._conn = self.CONN_MANAGER()
        self._conn.parent = self
        self._pool_lock = threading.Lock()
        self._metadata = {}
        self.make_runpath_dirs()
        self._metadata['runpath'] = self.runpath
        self._exit_loop = False
        self._start_monitor_thread = True

        # Methods for handling different Message types. These are expected to
        # take the worker, request and response objects as the only required
        # positional args.
        self._request_handlers = {
            Message.ConfigRequest: self._handle_cfg_request,
            Message.TaskPullRequest: self._handle_taskpull_request,
            Message.TaskResults: self._handle_taskresults,
            Message.Heartbeat: self._handle_heartbeat,
            Message.SetupFailed: self._handle_setupfailed
        }
Example #2
0
 def __init__(self,
              name,
              size=4,
              worker_type=Worker,
              worker_heartbeat=None,
              heartbeats_miss_limit=3,
              restart_count=3,
              max_active_loop_sleep=5,
              should_rerun=default_check_rerun,
              **options):
     options.update(self.filter_locals(locals()))
     super(Pool, self).__init__(**options)
     self.unassigned = []  # unassigned tasks
     self._task_retries_cnt = {}  # uid: times_reassigned_without_result
     self._task_retries_limit = 2
     self._should_rerun = self.cfg.should_rerun
     self._workers = entity.Environment(parent=self)
     self._workers_last_result = {}
     self._conn = self.CONN_MANAGER()
     self._conn.parent = self
     self._pool_lock = threading.Lock()
     self._metadata = None
     # Set when Pool is started.
     self._exit_loop = False
     self._start_monitor_thread = True
     # Methods for handling different Message types. These are expected to
     # take the worker, request and response objects as the only required
     # positional args.
     self._request_handlers = {
         Message.ConfigRequest: self._handle_cfg_request,
         Message.TaskPullRequest: self._handle_taskpull_request,
         Message.TaskResults: self._handle_taskresults,
         Message.Heartbeat: self._handle_heartbeat,
         Message.SetupFailed: self._handle_setupfailed,
     }
Example #3
0
def kafka_server(zookeeper_server):
    server = kafka.KafkaStandalone("kafka", cfg_template=kafka_cfg_template)

    testplan = TestplanMock("KafkaTest", parse_cmdline=False)
    env = entity.Environment(parent=testplan)
    env.add(zookeeper_server)
    env.add(server)
    with server:
        yield server