def test_thread_pool(): pool = ThreadPool(2, 0.5) for i in range(2): handle = login.login('ssh', 'root', 'n', '10.20.60.23') task = (handle.execute_cmd, ('uname -a',), {}) pool.add_task(task) print pool.get_result() pool.task_join()
def test_server_list(cls, target_list, shared_settings): """ Tests connectivity with each server of the target_list and returns the list of online servers. """ # Use a thread pool to connect to each server thread_pool = ThreadPool() for target_str in target_list: thread_pool.add_job((cls._test_server, (target_str, shared_settings))) nb_threads = min(len(target_list), cls.MAX_THREADS) thread_pool.start(nb_threads) # Return valid targets for (job, target) in thread_pool.get_result(): yield target # Use None as a sentinel yield None # Return invalid targets for (job, exception) in thread_pool.get_error(): yield exception thread_pool.join() return
def test_connectivity(self, timeout): """ Tests connectivity with each server of the target_list and returns the list of online servers. """ # Use a thread pool to connect to each server thread_pool = ThreadPool() for target_str in self._target_list: thread_pool.add_job((self._test_server, (target_str, timeout))) nb_threads = min(len(self._target_list), self.MAX_THREADS) thread_pool.start(nb_threads) # Recover valid targets for (job, target) in thread_pool.get_result(): self._targets_OK.append(target) yield target # Store invvalid targets for (job, exception) in thread_pool.get_error(): self._targets_ERR.append(exception) thread_pool.join() return