summaryrefslogtreecommitdiff
path: root/docker/api/network.py
diff options
context:
space:
mode:
authorOndřej Nový <onovy@debian.org>2016-09-08 14:22:11 +0200
committerOndřej Nový <onovy@debian.org>2016-09-08 14:22:11 +0200
commit49556cb01423a89a6d2ce7a58b1f5cb64dde0ff3 (patch)
tree72b2266d0cfa008857d957de8c12a646d8c9e96e /docker/api/network.py
parent63875477fa2e0a529fcf52e36a3f9cb3db861000 (diff)
Import python-docker_1.9.0.orig.tar.gz
Diffstat (limited to 'docker/api/network.py')
-rw-r--r--docker/api/network.py25
1 files changed, 19 insertions, 6 deletions
diff --git a/docker/api/network.py b/docker/api/network.py
index d9a6128..a35f0a4 100644
--- a/docker/api/network.py
+++ b/docker/api/network.py
@@ -1,6 +1,8 @@
import json
-from ..utils import check_resource, minimum_version, normalize_links
+from ..errors import InvalidVersion
+from ..utils import check_resource, minimum_version
+from ..utils import version_lt
class NetworkApiMixin(object):
@@ -19,7 +21,8 @@ class NetworkApiMixin(object):
return self._result(res, json=True)
@minimum_version('1.21')
- def create_network(self, name, driver=None, options=None, ipam=None):
+ def create_network(self, name, driver=None, options=None, ipam=None,
+ check_duplicate=None, internal=False):
if options is not None and not isinstance(options, dict):
raise TypeError('options must be a dictionary')
@@ -28,7 +31,15 @@ class NetworkApiMixin(object):
'Driver': driver,
'Options': options,
'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)
@@ -48,14 +59,16 @@ class NetworkApiMixin(object):
@check_resource
@minimum_version('1.21')
def connect_container_to_network(self, container, net_id,
+ ipv4_address=None, ipv6_address=None,
aliases=None, links=None):
data = {
"Container": container,
- "EndpointConfig": {
- "Aliases": aliases,
- "Links": normalize_links(links) if links else None,
- },
+ "EndpointConfig": self.create_endpoint_config(
+ aliases=aliases, links=links, ipv4_address=ipv4_address,
+ ipv6_address=ipv6_address
+ ),
}
+
url = self._url("/networks/{0}/connect", net_id)
res = self._post_json(url, data=data)
self._raise_for_status(res)