From d1427d38bed06bea7363cd8e83307626bf9c0372 Mon Sep 17 00:00:00 2001 From: Nada Amin Date: Fri, 3 Jan 2014 13:43:19 +0000 Subject: [PATCH] Option to disable network when creating container. --- README.md | 2 +- docker/client.py | 9 ++++++--- tests/test.py | 10 ++++++---- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 241f7c4b..28f97421 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Identical to the `docker cp` command. c.create_container(image, command=None, hostname=None, user=None, detach=False, stdin_open=False, tty=False, mem_limit=0, ports=None, environment=None, dns=None, volumes=None, - volumes_from=None, name=None) + volumes_from=None, network_disabled=False, name=None) ``` Creates a container that can then be `start`ed. Parameters are similar diff --git a/docker/client.py b/docker/client.py index 5ccf9988..56951edf 100644 --- a/docker/client.py +++ b/docker/client.py @@ -120,7 +120,8 @@ class Client(requests.Session): def _container_config(self, image, command, hostname=None, user=None, detach=False, stdin_open=False, tty=False, mem_limit=0, ports=None, environment=None, dns=None, - volumes=None, volumes_from=None): + volumes=None, volumes_from=None, + network_disabled=False): if isinstance(command, six.string_types): command = shlex.split(str(command)) if isinstance(environment, dict): @@ -176,6 +177,7 @@ class Client(requests.Session): 'Image': image, 'Volumes': volumes, 'VolumesFrom': volumes_from, + 'NetworkDisabled': network_disabled } def _post_json(self, url, data, **kwargs): @@ -389,11 +391,12 @@ class Client(requests.Session): def create_container(self, image, command=None, hostname=None, user=None, detach=False, stdin_open=False, tty=False, mem_limit=0, ports=None, environment=None, dns=None, - volumes=None, volumes_from=None, name=None): + volumes=None, volumes_from=None, + network_disabled=False, name=None): config = self._container_config( image, command, hostname, user, detach, stdin_open, tty, mem_limit, - ports, environment, dns, volumes, volumes_from + ports, environment, dns, volumes, volumes_from, network_disabled ) return self.create_container_from_config(config, name) diff --git a/tests/test.py b/tests/test.py index 5d0ce38d..c0928094 100644 --- a/tests/test.py +++ b/tests/test.py @@ -180,7 +180,7 @@ class DockerClientTest(unittest.TestCase): {"Tty": false, "Image": "busybox", "Cmd": ["true"], "AttachStdin": false, "Memory": 0, "AttachStderr": true, "AttachStdout": true, - "OpenStdin": false}''')) + "OpenStdin": false, "NetworkDisabled": false}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) @@ -203,7 +203,8 @@ class DockerClientTest(unittest.TestCase): "Cmd": ["ls", "/mnt"], "AttachStdin": false, "Volumes": {"/mnt": {}}, "Memory": 0, "AttachStderr": true, - "AttachStdout": true, "OpenStdin": false}''')) + "AttachStdout": true, "OpenStdin": false, + "NetworkDisabled": false}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) @@ -227,7 +228,8 @@ class DockerClientTest(unittest.TestCase): "3333": {} }, "AttachStderr": true, - "AttachStdout": true, "OpenStdin": false}''')) + "AttachStdout": true, "OpenStdin": false, + "NetworkDisabled": false}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) @@ -246,7 +248,7 @@ class DockerClientTest(unittest.TestCase): {"Tty": false, "Image": "busybox", "Cmd": ["true"], "AttachStdin": false, "Memory": 0, "AttachStderr": true, "AttachStdout": true, - "OpenStdin": false}''')) + "OpenStdin": false, "NetworkDisabled": false}''')) self.assertEqual(args[1]['headers'], {'Content-Type': 'application/json'}) self.assertEqual(args[1]['params'], {'name': 'marisa-kirisame'})