示例#1
0
def test_cancel_no_node(kubernetes_job_starter: DownloadDispatcher,
                        zoo_keeper_client_no_node: KazooClient,
                        mock_lock_manager: RWLockManager):
    download_mgr = DownloadManager(zoo_keeper_client_no_node,
                                   kubernetes_job_starter, mock_lock_manager,
                                   data_set_to_path)
    download_mgr.cancel(CLIENT_ID, ACTION_ID)

    zoo_keeper_client_no_node.set.assert_not_called()
示例#2
0
def test_cancel_conflict(
    kubernetes_job_starter: DownloadDispatcher,
    zoo_keeper_client_with_conflict: KazooClient,
    mock_lock_manager: RWLockManager,
):
    download_mgr = DownloadManager(zoo_keeper_client_with_conflict,
                                   kubernetes_job_starter, mock_lock_manager,
                                   data_set_to_path)

    download_mgr.cancel(CLIENT_ID, ACTION_ID)
    # We expect 2 conflicts as stated in the fixture
    zoo_keeper_client_with_conflict.set.call_count == 2
示例#3
0
def test_cancel_happy_path(kubernetes_job_starter: DownloadDispatcher,
                           zoo_keeper_client_to_cancel,
                           mock_lock_manager: RWLockManager):
    download_mgr = DownloadManager(zoo_keeper_client_to_cancel,
                                   kubernetes_job_starter, mock_lock_manager,
                                   data_set_to_path)
    download_mgr.cancel(CLIENT_ID, ACTION_ID)

    kubernetes_job_starter.cancel_all.assert_called_once_with(
        CLIENT_ID, ACTION_ID)
    zoo_keeper_client_to_cancel.set.assert_called_once_with(
        SOME_PATH + "/" + DATASET_PATH, BIN_RESULT_CANCELED, ZK_VERSION)
示例#4
0
def _test_fetch(zoo_keeper_client, enclosing_event, kubernetes_job_starter,
                mock_lock_manager, some_data_set):
    download_mgr = DownloadManager(
        zoo_keeper_client,
        kubernetes_job_starter,
        mock_lock_manager,
        data_set_to_path,
        size_estimator=mock_size_estimator,
    )
    on_done = create_autospec(DownloadOnDone)
    download_mgr.fetch(some_data_set, enclosing_event, on_done)
    return on_done
示例#5
0
def test_pass_through_estimator_error(
    enclosing_event: BenchmarkEvent,
    some_data_set: DownloadableContent,
    failing_size_estimator: ContentSizeEstimator,
    zoo_keeper_client: KazooClient,
    kubernetes_job_starter: DownloadDispatcher,
    mock_lock_manager: RWLockManager,
    mock_lock: RWLock,
):
    download_mgr = DownloadManager(zoo_keeper_client, kubernetes_job_starter,
                                   mock_lock_manager, data_set_to_path,
                                   failing_size_estimator)
    on_done = create_autospec(DownloadOnDone)
    download_mgr.fetch(some_data_set, enclosing_event, on_done)

    _verify_failed_estimator(mock_lock, on_done, some_data_set)
def create_download_manager(zookeeper_ensemble_hosts: str, kubeconfig: str,
                            fetcher_job: FetcherJobConfig):
    zk_client = KazooClient(zookeeper_ensemble_hosts)
    job_dispatcher = KubernetesDispatcher(SERVICE_NAME, kubeconfig,
                                          zookeeper_ensemble_hosts,
                                          fetcher_job)

    lock_manager = DistributedRWLockManager(zk_client, LOCK_MANAGER_PREFIX,
                                            get_lock_name)

    return DownloadManager(zk_client, job_dispatcher, lock_manager)
示例#7
0
def download_manager(zoo_keeper_client: KazooClient,
                     kubernetes_job_starter: DownloadDispatcher,
                     mock_lock_manager: RWLockManager) -> DownloadManager:
    download_manager = DownloadManager(
        zoo_keeper_client,
        kubernetes_job_starter,
        mock_lock_manager,
        data_set_to_path,
        size_estimator=mock_size_estimator,
    )
    return download_manager
def download_manager(zk_client: KazooClient,
                     k8s_dispatcher: KubernetesDispatcher):
    locker = DistributedRWLockManager(zk_client, "it_locks")
    download_mgr = DownloadManager(zk_client, k8s_dispatcher, locker)

    download_mgr.start()
    yield download_mgr
    download_mgr.stop()