summaryrefslogtreecommitdiff
path: root/docker/client.py
diff options
context:
space:
mode:
authorJoffrey F <joffrey@docker.com>2014-12-18 18:03:27 -0800
committerJoffrey F <joffrey@docker.com>2014-12-18 18:03:27 -0800
commit2218dbaa6772838020e2836ac5dd2fddd4f3f574 (patch)
tree2f4719e88a84b5b8d40cd4fc842a2063ba589134 /docker/client.py
parent53d61a77b6fe3fe4178334511f20c2a292d1ce04 (diff)
downloaddocker-py-0.7.0-release.tar.gz
Use create_host_config in start (unifying parameter processing)0.7.0-release
Diffstat (limited to 'docker/client.py')
-rw-r--r--docker/client.py83
1 files changed, 11 insertions, 72 deletions
diff --git a/docker/client.py b/docker/client.py
index 7032c06..1aa9ed6 100644
--- a/docker/client.py
+++ b/docker/client.py
@@ -911,63 +911,7 @@ class Client(requests.Session):
restart_policy=None, cap_add=None, cap_drop=None, devices=None,
extra_hosts=None):
- start_config = {}
-
- if isinstance(container, dict):
- container = container.get('Id')
-
- if isinstance(lxc_conf, dict):
- formatted = []
- for k, v in six.iteritems(lxc_conf):
- formatted.append({'Key': k, 'Value': str(v)})
- lxc_conf = formatted
-
- if lxc_conf:
- start_config['LxcConf'] = lxc_conf
-
- if binds:
- start_config['Binds'] = utils.convert_volume_binds(binds)
-
- if port_bindings:
- start_config['PortBindings'] = utils.convert_port_bindings(
- port_bindings
- )
-
- if publish_all_ports:
- start_config['PublishAllPorts'] = publish_all_ports
-
- if links:
- if isinstance(links, dict):
- links = six.iteritems(links)
-
- formatted_links = [
- '{0}:{1}'.format(k, v) for k, v in sorted(links)
- ]
-
- start_config['Links'] = formatted_links
-
- if extra_hosts:
- if isinstance(extra_hosts, dict):
- extra_hosts = six.iteritems(extra_hosts)
-
- formatted_extra_hosts = [
- '{0}:{1}'.format(k, v) for k, v in sorted(extra_hosts)
- ]
-
- start_config['ExtraHosts'] = formatted_extra_hosts
-
- if privileged:
- start_config['Privileged'] = privileged
-
- if utils.compare_version('1.10', self._version) >= 0:
- if dns is not None:
- start_config['Dns'] = dns
- if volumes_from is not None:
- if isinstance(volumes_from, six.string_types):
- volumes_from = volumes_from.split(',')
- start_config['VolumesFrom'] = volumes_from
- else:
-
+ if utils.compare_version('1.10', self._version) < 0:
if dns is not None:
raise errors.APIError(
'dns is only supported for API version >= 1.10'
@@ -976,23 +920,18 @@ class Client(requests.Session):
raise errors.APIError(
'volumes_from is only supported for API version >= 1.10'
)
- if dns_search:
- start_config['DnsSearch'] = dns_search
-
- if network_mode:
- start_config['NetworkMode'] = network_mode
-
- if restart_policy:
- start_config['RestartPolicy'] = restart_policy
-
- if cap_add:
- start_config['CapAdd'] = cap_add
- if cap_drop:
- start_config['CapDrop'] = cap_drop
+ start_config = utils.create_host_config(
+ binds=binds, port_bindings=port_bindings, lxc_conf=lxc_conf,
+ publish_all_ports=publish_all_ports, links=links, dns=dns,
+ privileged=privileged, dns_search=dns_search, cap_add=cap_add,
+ cap_drop=cap_drop, volumes_from=volumes_from, devices=devices,
+ network_mode=network_mode, restart_policy=restart_policy,
+ extra_hosts=extra_hosts
+ )
- if devices:
- start_config['Devices'] = utils.parse_devices(devices)
+ if isinstance(container, dict):
+ container = container.get('Id')
url = self._url("/containers/{0}/start".format(container))
if not start_config: