diff --git a/lib/galaxy/tool_util/deps/docker_util.py b/lib/galaxy/tool_util/deps/docker_util.py index e5ef9cb7587..12432c9bbba 100644 --- a/lib/galaxy/tool_util/deps/docker_util.py +++ b/lib/galaxy/tool_util/deps/docker_util.py @@ -225,6 +225,12 @@ def _docker_prefix( def parse_port_text(port_text): + """ + + >>> slurm_ports = parse_port_text("8888/tcp -> 0.0.0.0:32769") + >>> slurm_ports[8888]['host'] + '0.0.0.0' + """ ports = None if port_text is not None: ports = {} diff --git a/lib/galaxy_ext/container_monitor/monitor.py b/lib/galaxy_ext/container_monitor/monitor.py index e03cda18b9e..b1e1447f1e0 100644 --- a/lib/galaxy_ext/container_monitor/monitor.py +++ b/lib/galaxy_ext/container_monitor/monitor.py @@ -41,12 +41,17 @@ def main(): try: ports_raw = parse_ports(container_name, connection_configuration) if ports_raw is not None: - host_ip = socket.gethostbyname(socket.gethostname()) + try: + host_ip = socket.gethostbyname(socket.gethostname()) + except Exception: + # doesn't work on OS X + host_ip = None with open("container_runtime.json", "w") as f: - # Override the IPs ports = docker_util.parse_port_text(ports_raw) - for key in ports: - ports[key]['host'] = host_ip + if host_ip is not None: + for key in ports: + if ports[key]['host'] == '0.0.0.0': + ports[key]['host'] = host_ip json.dump(ports, f) break else: