diff options
| author | Daniel Nephin <dnephin@gmail.com> | 2015-11-16 11:37:15 -0500 |
|---|---|---|
| committer | Daniel Nephin <dnephin@gmail.com> | 2015-11-16 11:37:15 -0500 |
| commit | 4e441b2a6bbac7b9b43adca05800c8f46e18ec16 (patch) | |
| tree | 7d7a82677f2483d64b6eda53a64586c2eaf38de7 /docker | |
| parent | ac148393b13ae09dde0d4cfcf0208e7c97649926 (diff) | |
| parent | 64fc383f2c573daab75c85459e87052ef0a31cdd (diff) | |
| download | docker-py-4e441b2a6bbac7b9b43adca05800c8f46e18ec16.tar.gz | |
Merge pull request #834 from lots0logs/814-host-config-mem-swap
Add support for MemorySwappiness to client.create_host_config()
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/utils/utils.py | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/docker/utils/utils.py b/docker/utils/utils.py index 39d0eba..b9424f0 100644 --- a/docker/utils/utils.py +++ b/docker/utils/utils.py @@ -469,16 +469,17 @@ def parse_bytes(s): return s -def create_host_config( - binds=None, port_bindings=None, lxc_conf=None, - publish_all_ports=False, links=None, privileged=False, - dns=None, dns_search=None, volumes_from=None, network_mode=None, - 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, group_add=None, cpu_quota=None, - cpu_period=None, version=None -): +def create_host_config(binds=None, port_bindings=None, lxc_conf=None, + publish_all_ports=False, links=None, privileged=False, + dns=None, dns_search=None, volumes_from=None, + network_mode=None, 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, mem_swappiness=None, + cgroup_parent=None, group_add=None, cpu_quota=None, + cpu_period=None, version=None): + host_config = {} if not version: @@ -491,6 +492,7 @@ def create_host_config( if mem_limit is not None: if isinstance(mem_limit, six.string_types): mem_limit = parse_bytes(mem_limit) + host_config['Memory'] = mem_limit if memswap_limit is not None: @@ -498,6 +500,18 @@ def create_host_config( memswap_limit = parse_bytes(memswap_limit) host_config['MemorySwap'] = memswap_limit + if mem_swappiness is not None: + if version_lt(version, '1.20'): + raise errors.InvalidVersion( + 'mem_swappiness param not supported for API version < 1.20' + ) + if not isinstance(mem_swappiness, int): + raise TypeError( + 'Invalid type for mem_swappiness param: expected int but' + ' found {0}'.format(type(mem_swappiness)) + ) + host_config['MemorySwappiness'] = mem_swappiness + if pid_mode not in (None, 'host'): raise errors.DockerException( 'Invalid value for pid param: {0}'.format(pid_mode) |
