Kaydet (Commit) 3cd66b66 authored tarafından Aanand Prasad's avatar Aanand Prasad

Merge pull request #719 from docker/allow-path-in-host

Allow docker host (base_url) to contain a path
...@@ -232,6 +232,7 @@ def parse_host(addr): ...@@ -232,6 +232,7 @@ def parse_host(addr):
proto = "http+unix" proto = "http+unix"
host = DEFAULT_HTTP_HOST host = DEFAULT_HTTP_HOST
port = None port = None
path = ''
if not addr or addr.strip() == 'unix://': if not addr or addr.strip() == 'unix://':
return DEFAULT_UNIX_SOCKET return DEFAULT_UNIX_SOCKET
...@@ -270,8 +271,12 @@ def parse_host(addr): ...@@ -270,8 +271,12 @@ def parse_host(addr):
if host_parts[0]: if host_parts[0]:
host = host_parts[0] host = host_parts[0]
port = host_parts[1]
if '/' in port:
port, path = port.split('/', 1)
path = '/{0}'.format(path)
try: try:
port = int(host_parts[1]) port = int(port)
except Exception: except Exception:
raise errors.DockerException( raise errors.DockerException(
"Invalid port: %s", addr "Invalid port: %s", addr
...@@ -285,7 +290,7 @@ def parse_host(addr): ...@@ -285,7 +290,7 @@ def parse_host(addr):
if proto == "http+unix": if proto == "http+unix":
return "{0}://{1}".format(proto, host) return "{0}://{1}".format(proto, host)
return "{0}://{1}:{2}".format(proto, host, port) return "{0}://{1}:{2}{3}".format(proto, host, port, path)
def parse_devices(devices): def parse_devices(devices):
......
...@@ -72,7 +72,10 @@ class UtilsTest(base.BaseTestCase): ...@@ -72,7 +72,10 @@ class UtilsTest(base.BaseTestCase):
'': 'http+unix://var/run/docker.sock', '': 'http+unix://var/run/docker.sock',
None: 'http+unix://var/run/docker.sock', None: 'http+unix://var/run/docker.sock',
'unix:///var/run/docker.sock': 'http+unix:///var/run/docker.sock', 'unix:///var/run/docker.sock': 'http+unix:///var/run/docker.sock',
'unix://': 'http+unix://var/run/docker.sock' 'unix://': 'http+unix://var/run/docker.sock',
'somehost.net:80/service/swarm': (
'http://somehost.net:80/service/swarm'
),
} }
for host in invalid_hosts: for host in invalid_hosts:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment