async def test_config_interface(): net_if_addrs = psutil.net_if_addrs() interface = list(net_if_addrs.keys())[0] with dask.config.set({"jobqueue.local.interface": interface}): cluster = LocalCluster(cores=1, memory="2GB", asynchronous=True) await cluster expected = "'interface': {!r}".format(interface) assert expected in str(cluster.scheduler_spec) cluster.scale(1) assert expected in str(cluster.worker_spec)
async def test_nprocs_scale(): async with LocalCluster(cores=2, memory="4GB", processes=2, asynchronous=True) as cluster: s = cluster.scheduler async with Client(cluster, asynchronous=True) as client: cluster.scale(cores=2) await cluster await client.wait_for_workers(2) assert len(cluster.workers) == 1 # two workers, one job assert len(s.workers) == 2 assert cluster.plan == {ws.name for ws in s.workers.values()} cluster.scale(cores=1) await cluster await asyncio.sleep(0.2) assert len( cluster.scheduler.workers) == 2 # they're still one group cluster.scale(jobs=2) assert len(cluster.worker_spec) == 2 cluster.scale(5) assert len(cluster.worker_spec) == 3 cluster.scale(1) assert len(cluster.worker_spec) == 1
def test_security(): dirname = os.path.dirname(__file__) key = os.path.join(dirname, "key.pem") cert = os.path.join(dirname, "ca.pem") security = Security( tls_ca_file=cert, tls_scheduler_key=key, tls_scheduler_cert=cert, tls_worker_key=key, tls_worker_cert=cert, tls_client_key=key, tls_client_cert=cert, require_encryption=True, ) with LocalCluster(cores=1, memory="1GB", security=security, protocol="tls") as cluster: assert cluster.security == security assert cluster.scheduler_spec["options"]["security"] == security job_script = cluster.job_script() assert "--tls-key {}".format(key) in job_script assert "--tls-cert {}".format(cert) in job_script assert "--tls-ca-file {}".format(cert) in job_script cluster.scale(jobs=1) with Client(cluster, security=security) as client: future = client.submit(lambda x: x + 1, 10) result = future.result() assert result == 11