summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Giannuzzi <jonathan@giannuzzi.be>2016-05-18 15:19:27 +0200
committerJonathan Giannuzzi <jonathan@giannuzzi.be>2016-05-18 16:25:43 +0200
commit98b41fee3cc332550031803a590c2cc1eb3b6e47 (patch)
tree95d79ae6ae14639f7fd2030096b0e5912e48cd93
parent966dfac3b5ba2d4083496063ab546b608b1b391f (diff)
downloaddocker-py-98b41fee3cc332550031803a590c2cc1eb3b6e47.tar.gz
Add support for creating internal networks
Signed-off-by: Jonathan Giannuzzi <jonathan@giannuzzi.be>
-rw-r--r--docker/api/network.py9
-rw-r--r--docs/networks.md7
-rw-r--r--tests/integration/network_test.py6
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