diff options
| author | Aanand Prasad <aanand.prasad@gmail.com> | 2015-08-25 14:03:51 +0100 |
|---|---|---|
| committer | Aanand Prasad <aanand.prasad@gmail.com> | 2015-08-25 14:03:51 +0100 |
| commit | d9a149f32711f324ae79813f3485da8fb83e1f53 (patch) | |
| tree | 2c971bbacc54e00ef8b59a60c166df64363aa1bb /docker | |
| parent | 4d2c15fad15fc9dcb102d273c45277f3b09fecab (diff) | |
| parent | 75e3b8bb71253bfa5212415f52417d2e80e0ef49 (diff) | |
| download | docker-py-d9a149f32711f324ae79813f3485da8fb83e1f53.tar.gz | |
Merge pull request #732 from docker/version-dependent-hostconfig
Version dependent hostconfig
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/client.py | 15 | ||||
| -rw-r--r-- | docker/utils/utils.py | 12 |
2 files changed, 22 insertions, 5 deletions
diff --git a/docker/client.py b/docker/client.py index c639d33..542b8c5 100644 --- a/docker/client.py +++ b/docker/client.py @@ -248,8 +248,8 @@ class Client(clientbase.ClientBase): 'host_config is not supported in API < 1.15' ) - config = utils.create_container_config( - self._version, image, command, hostname, user, detach, stdin_open, + config = self.create_container_config( + image, command, hostname, user, detach, stdin_open, tty, mem_limit, ports, environment, dns, volumes, volumes_from, network_disabled, entrypoint, cpu_shares, working_dir, domainname, memswap_limit, cpuset, host_config, mac_address, labels, @@ -257,6 +257,9 @@ class Client(clientbase.ClientBase): ) return self.create_container_from_config(config, name) + def create_container_config(self, *args, **kwargs): + return utils.create_container_config(self._version, *args, **kwargs) + def create_container_from_config(self, config, name=None): u = self._url("/containers/create") params = { @@ -265,6 +268,12 @@ class Client(clientbase.ClientBase): res = self._post_json(u, data=config, params=params) return self._result(res, True) + def create_host_config(self, *args, **kwargs): + if not kwargs: + kwargs = {} + kwargs['version'] = self._version + return utils.create_host_config(*args, **kwargs) + @check_resource def diff(self, container): return self._result(self._get(self._url("/containers/{0}/changes". @@ -815,7 +824,7 @@ class Client(clientbase.ClientBase): 'Please use host_config in create_container instead!', DeprecationWarning ) - start_config = utils.create_host_config(**start_config_kwargs) + start_config = self.create_host_config(**start_config_kwargs) url = self._url("/containers/{0}/start".format(container)) res = self._post_json(url, data=start_config) diff --git a/docker/utils/utils.py b/docker/utils/utils.py index 9c4680b..8f69950 100644 --- a/docker/utils/utils.py +++ b/docker/utils/utils.py @@ -27,6 +27,7 @@ from datetime import datetime import requests import six +from .. import constants from .. import errors from .. import tls from .types import Ulimit, LogConfig @@ -395,10 +396,17 @@ def create_host_config( restart_policy=None, cap_add=None, cap_drop=None, devices=None, extra_hosts=None, read_only=None, pid_mode=None, ipc_mode=None, security_opt=None, ulimits=None, log_config=None, mem_limit=None, - memswap_limit=None, cgroup_parent=None + memswap_limit=None, cgroup_parent=None, version=None ): host_config = {} + if not version: + warnings.warn( + 'docker.utils.create_host_config() is deprecated. Please use ' + 'Client.create_host_config() instead.' + ) + version = constants.DEFAULT_DOCKER_API_VERSION + if mem_limit is not None: if isinstance(mem_limit, six.string_types): mem_limit = parse_bytes(mem_limit) @@ -433,7 +441,7 @@ def create_host_config( if network_mode: host_config['NetworkMode'] = network_mode - elif network_mode is None: + elif network_mode is None and compare_version('1.19', version) > 0: host_config['NetworkMode'] = 'default' if restart_policy: |
