summaryrefslogtreecommitdiff
path: root/docker/utils/utils.py
diff options
context:
space:
mode:
authorDustin Falgout <dustin@falgout.us>2015-10-30 20:57:15 -0500
committerDustin Falgout <dustin@falgout.us>2015-11-05 02:20:53 -0600
commitc07dd53a2aea40ffb4c5080a7b741eb25485d691 (patch)
tree8150c72a1e04b974ae3e94ca63825dc485e59722 /docker/utils/utils.py
parent47ab89ec2bd3bddf1221b856ffbaff333edeabb4 (diff)
downloaddocker-py-c07dd53a2aea40ffb4c5080a7b741eb25485d691.tar.gz
Incorporates feedback from and closes #814
Signed-off-by: Dustin Falgout <dustin@falgout.us>
Diffstat (limited to 'docker/utils/utils.py')
-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)