diff options
author | Jonathan Giannuzzi <jonathan@giannuzzi.be> | 2016-05-18 15:19:27 +0200 |
---|---|---|
committer | Jonathan Giannuzzi <jonathan@giannuzzi.be> | 2016-05-18 16:25:43 +0200 |
commit | 98b41fee3cc332550031803a590c2cc1eb3b6e47 (patch) | |
tree | 95d79ae6ae14639f7fd2030096b0e5912e48cd93 | |
parent | 966dfac3b5ba2d4083496063ab546b608b1b391f (diff) | |
download | docker-py-98b41fee3cc332550031803a590c2cc1eb3b6e47.tar.gz |
Add support for creating internal networks
Signed-off-by: Jonathan Giannuzzi <jonathan@giannuzzi.be>
-rw-r--r-- | docker/api/network.py | 9 | ||||
-rw-r--r-- | docs/networks.md | 7 | ||||
-rw-r--r-- | tests/integration/network_test.py | 6 |
3 files changed, 21 insertions, 1 deletions
diff --git a/docker/api/network.py b/docker/api/network.py index 33a2feb..4dec3f5 100644 --- a/docker/api/network.py +++ b/docker/api/network.py @@ -22,7 +22,7 @@ class NetworkApiMixin(object): @minimum_version('1.21') def create_network(self, name, driver=None, options=None, ipam=None, - check_duplicate=None): + check_duplicate=None, internal=False): if options is not None and not isinstance(options, dict): raise TypeError('options must be a dictionary') @@ -33,6 +33,13 @@ class NetworkApiMixin(object): 'IPAM': ipam, 'CheckDuplicate': check_duplicate } + + if internal: + if version_lt(self._version, '1.22'): + raise InvalidVersion('Internal networks are not ' + 'supported in API version < 1.22') + data['Internal'] = True + url = self._url("/networks/create") res = self._post_json(url, data=data) return self._result(res, json=True) diff --git a/docs/networks.md b/docs/networks.md index 4193537..5a14d38 100644 --- a/docs/networks.md +++ b/docs/networks.md @@ -18,3 +18,10 @@ ipam_config = docker.utils.create_ipam_config(subnet='192.168.52.0/24', gateway= docker_client.create_network("network1", driver="bridge", ipam=ipam_config) ``` + +With Docker 1.10 you can now also create internal networks + +```python + +docker_client.create_network("network1", driver="bridge", internal=True) +``` diff --git a/tests/integration/network_test.py b/tests/integration/network_test.py index 0a81215..179ae88 100644 --- a/tests/integration/network_test.py +++ b/tests/integration/network_test.py @@ -298,3 +298,9 @@ class TestNetworks(helpers.BaseTestCase): self.assertEqual( net_data['IPAMConfig']['IPv6Address'], '2001:389::f00d' ) + + @requires_api_version('1.23') + def test_create_internal_networks(self): + _, net_id = self.create_network(internal=True) + net = self.client.inspect_network(net_id) + assert net['Internal'] is True |