Skip to content

Commit 98b41fe

Browse files
committed
Add support for creating internal networks
Signed-off-by: Jonathan Giannuzzi <[email protected]>
1 parent 966dfac commit 98b41fe

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

docker/api/network.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def networks(self, names=None, ids=None):
2222

2323
@minimum_version('1.21')
2424
def create_network(self, name, driver=None, options=None, ipam=None,
25-
check_duplicate=None):
25+
check_duplicate=None, internal=False):
2626
if options is not None and not isinstance(options, dict):
2727
raise TypeError('options must be a dictionary')
2828

@@ -33,6 +33,13 @@ def create_network(self, name, driver=None, options=None, ipam=None,
3333
'IPAM': ipam,
3434
'CheckDuplicate': check_duplicate
3535
}
36+
37+
if internal:
38+
if version_lt(self._version, '1.22'):
39+
raise InvalidVersion('Internal networks are not '
40+
'supported in API version < 1.22')
41+
data['Internal'] = True
42+
3643
url = self._url("/networks/create")
3744
res = self._post_json(url, data=data)
3845
return self._result(res, json=True)

docs/networks.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,10 @@ ipam_config = docker.utils.create_ipam_config(subnet='192.168.52.0/24', gateway=
1818

1919
docker_client.create_network("network1", driver="bridge", ipam=ipam_config)
2020
```
21+
22+
With Docker 1.10 you can now also create internal networks
23+
24+
```python
25+
26+
docker_client.create_network("network1", driver="bridge", internal=True)
27+
```

tests/integration/network_test.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,3 +298,9 @@ def test_connect_with_ipv6_address(self):
298298
self.assertEqual(
299299
net_data['IPAMConfig']['IPv6Address'], '2001:389::f00d'
300300
)
301+
302+
@requires_api_version('1.23')
303+
def test_create_internal_networks(self):
304+
_, net_id = self.create_network(internal=True)
305+
net = self.client.inspect_network(net_id)
306+
assert net['Internal'] is True

0 commit comments

Comments
 (0)