From 32992c2a5576abe69be604419d323899fdaad0ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Wed, 22 Aug 2018 11:13:18 +0200 Subject: [PATCH 1/3] Alternative way of listening on all interfaces for the bokeh server --- dask_jobqueue/core.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/dask_jobqueue/core.py b/dask_jobqueue/core.py index f0f6b852..bcbeb719 100644 --- a/dask_jobqueue/core.py +++ b/dask_jobqueue/core.py @@ -8,13 +8,14 @@ import warnings from collections import OrderedDict from contextlib import contextmanager +import socket import dask import docrep from distributed import LocalCluster from distributed.deploy import Cluster from distributed.diagnostics.plugin import SchedulerPlugin -from distributed.utils import (format_bytes, parse_bytes, tmpfile) +from distributed.utils import format_bytes, parse_bytes, tmpfile, get_ip_interface logger = logging.getLogger(__name__) docstrings = docrep.DocstringProcessor() @@ -179,8 +180,6 @@ def __init__(self, local_directory = dask.config.get('jobqueue.%s.local-directory' % self.scheduler_name) if extra is None: extra = dask.config.get('jobqueue.%s.extra' % self.scheduler_name) - if interface: - extra += ' --interface %s ' % interface if env_extra is None: env_extra = dask.config.get('jobqueue.%s.env-extra' % self.scheduler_name) @@ -196,11 +195,16 @@ def __init__(self, # This attribute should be overriden self.job_header = None - # Bind to all network addresses by default - if 'ip' not in kwargs: - kwargs['ip'] = '' - - self.local_cluster = LocalCluster(n_workers=0, **kwargs) + if interface: + extra += ' --interface %s ' % interface + kwargs.setdefault('ip', get_ip_interface(interface)) + else: + kwargs.setdefault('ip', socket.gethostname()) + + # Bokeh diagnostics server should listen on all interfaces + diagnostics_ip_and_port = ('', 8787) + self.local_cluster = LocalCluster(n_workers=0, diagnostics_port=diagnostics_ip_and_port, + **kwargs) # Keep information on process, threads and memory, for use in # subclasses From 3b52f26d3334bdd90b0cb2a5e76f85c1c4c79de8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Wed, 22 Aug 2018 18:31:05 +0200 Subject: [PATCH 2/3] Scheduler listens on all interfaces if interface is not specified --- dask_jobqueue/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dask_jobqueue/core.py b/dask_jobqueue/core.py index bcbeb719..f760c2e3 100644 --- a/dask_jobqueue/core.py +++ b/dask_jobqueue/core.py @@ -199,7 +199,7 @@ def __init__(self, extra += ' --interface %s ' % interface kwargs.setdefault('ip', get_ip_interface(interface)) else: - kwargs.setdefault('ip', socket.gethostname()) + kwargs.setdefault('ip', '') # Bokeh diagnostics server should listen on all interfaces diagnostics_ip_and_port = ('', 8787) From 9f670155f9f8dafce7f412521185607cd9fdf85a Mon Sep 17 00:00:00 2001 From: Guillaume EB Date: Fri, 24 Aug 2018 22:00:06 +0200 Subject: [PATCH 3/3] flake8 fixes --- dask_jobqueue/core.py | 1 - 1 file changed, 1 deletion(-) diff --git a/dask_jobqueue/core.py b/dask_jobqueue/core.py index f760c2e3..5da7088a 100644 --- a/dask_jobqueue/core.py +++ b/dask_jobqueue/core.py @@ -8,7 +8,6 @@ import warnings from collections import OrderedDict from contextlib import contextmanager -import socket import dask import docrep