diff --git a/docker/api/network.py b/docker/api/network.py index 2dea6795..4d1901ad 100644 --- a/docker/api/network.py +++ b/docker/api/network.py @@ -19,10 +19,14 @@ class NetworkApiMixin(object): return self._result(res, json=True) @minimum_version('1.21') - def create_network(self, name, driver=None): + def create_network(self, name, driver=None, options=None): + if options is not None and not isinstance(options, dict): + raise TypeError('options must be a dictionary') + data = { 'name': name, 'driver': driver, + 'options': options } url = self._url("/networks/create") res = self._post_json(url, data=data) diff --git a/tests/unit/network_test.py b/tests/unit/network_test.py index 306ee4f2..a41a9803 100644 --- a/tests/unit/network_test.py +++ b/tests/unit/network_test.py @@ -70,11 +70,15 @@ class NetworkTest(DockerClientTest): json.loads(post.call_args[1]['data']), {"name": "foo"}) - self.client.create_network('foo', 'bridge') + opts = { + 'com.docker.network.bridge.enable_icc': False, + 'com.docker.network.bridge.enable_ip_masquerade': False, + } + self.client.create_network('foo', 'bridge', opts) self.assertEqual( json.loads(post.call_args[1]['data']), - {"name": "foo", "driver": "bridge"}) + {"name": "foo", "driver": "bridge", "options": opts}) @base.requires_api_version('1.21') def test_remove_network(self):