summaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorDaniel Nephin <dnephin@gmail.com>2015-11-16 11:37:15 -0500
committerDaniel Nephin <dnephin@gmail.com>2015-11-16 11:37:15 -0500
commit4e441b2a6bbac7b9b43adca05800c8f46e18ec16 (patch)
tree7d7a82677f2483d64b6eda53a64586c2eaf38de7 /docker
parentac148393b13ae09dde0d4cfcf0208e7c97649926 (diff)
parent64fc383f2c573daab75c85459e87052ef0a31cdd (diff)
downloaddocker-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.py34
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)