From 7497daf34a7a02be83a206e0a5ebee92a5c449a6 Mon Sep 17 00:00:00 2001 From: Bernardo Date: Sun, 11 May 2014 17:45:15 -0400 Subject: [PATCH] memory swap limit support --- docker/client.py | 11 +++++++---- tests/test.py | 24 ++++++++++++++++-------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/docker/client.py b/docker/client.py index 5dfa889d..0fbca46a 100644 --- a/docker/client.py +++ b/docker/client.py @@ -129,7 +129,8 @@ class Client(requests.Session): mem_limit=0, ports=None, environment=None, dns=None, volumes=None, volumes_from=None, network_disabled=False, entrypoint=None, - cpu_shares=None, working_dir=None, domainname=None): + cpu_shares=None, working_dir=None, domainname=None, + memswap_limit=0): if isinstance(command, six.string_types): command = shlex.split(str(command)) if isinstance(environment, dict): @@ -192,7 +193,8 @@ class Client(requests.Session): 'NetworkDisabled': network_disabled, 'Entrypoint': entrypoint, 'CpuShares': cpu_shares, - 'WorkingDir': working_dir + 'WorkingDir': working_dir, + 'MemorySwap': memswap_limit } def _post_json(self, url, data, **kwargs): @@ -444,12 +446,13 @@ class Client(requests.Session): mem_limit=0, ports=None, environment=None, dns=None, volumes=None, volumes_from=None, network_disabled=False, name=None, entrypoint=None, - cpu_shares=None, working_dir=None, domainname=None): + cpu_shares=None, working_dir=None, domainname=None, + memswap_limit=0): config = self._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 + entrypoint, cpu_shares, working_dir, domainname, memswap_limit ) return self.create_container_from_config(config, name) diff --git a/tests/test.py b/tests/test.py index 4de58b93..6ac11442 100644 --- a/tests/test.py +++ b/tests/test.py @@ -186,7 +186,8 @@ class DockerClientTest(unittest.TestCase): "AttachStdin": false, "Memory": 0, "AttachStderr": true, "AttachStdout": true, "StdinOnce": false, - "OpenStdin": false, "NetworkDisabled": false}''')) + "OpenStdin": false, "NetworkDisabled": false, + "MemorySwap": 0}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) @@ -210,7 +211,8 @@ class DockerClientTest(unittest.TestCase): "AttachStderr": true, "AttachStdout": true, "OpenStdin": false, "StdinOnce": false, - "NetworkDisabled": false}''')) + "NetworkDisabled": false, + "MemorySwap": 0}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) @@ -236,7 +238,8 @@ class DockerClientTest(unittest.TestCase): "AttachStderr": true, "AttachStdout": true, "OpenStdin": false, "StdinOnce": false, - "NetworkDisabled": false}''')) + "NetworkDisabled": false, + "MemorySwap": 0}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) @@ -259,7 +262,8 @@ class DockerClientTest(unittest.TestCase): "AttachStdout": true, "OpenStdin": false, "StdinOnce": false, "NetworkDisabled": false, - "Entrypoint": "cowsay"}''')) + "Entrypoint": "cowsay", + "MemorySwap": 0}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) @@ -282,7 +286,8 @@ class DockerClientTest(unittest.TestCase): "AttachStdout": true, "OpenStdin": false, "StdinOnce": false, "NetworkDisabled": false, - "CpuShares": 5}''')) + "CpuShares": 5, + "MemorySwap": 0}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) @@ -305,7 +310,8 @@ class DockerClientTest(unittest.TestCase): "AttachStdout": true, "OpenStdin": false, "StdinOnce": false, "NetworkDisabled": false, - "WorkingDir": "/root"}''')) + "WorkingDir": "/root", + "MemorySwap": 0}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) @@ -324,7 +330,8 @@ class DockerClientTest(unittest.TestCase): "AttachStdin": true, "Memory": 0, "AttachStderr": true, "AttachStdout": true, "StdinOnce": true, - "OpenStdin": true, "NetworkDisabled": false}''')) + "OpenStdin": true, "NetworkDisabled": false, + "MemorySwap": 0}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) @@ -358,7 +365,8 @@ class DockerClientTest(unittest.TestCase): "AttachStdin": false, "Memory": 0, "AttachStderr": true, "AttachStdout": true, "StdinOnce": false, - "OpenStdin": false, "NetworkDisabled": false}''')) + "OpenStdin": false, "NetworkDisabled": false, + "MemorySwap": 0}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) self.assertEqual(args[1]['params'], {'name': 'marisa-kirisame'})