diff options
author | Ondřej Nový <onovy@debian.org> | 2016-09-08 14:22:11 +0200 |
---|---|---|
committer | Ondřej Nový <onovy@debian.org> | 2016-09-08 14:22:11 +0200 |
commit | 49556cb01423a89a6d2ce7a58b1f5cb64dde0ff3 (patch) | |
tree | 72b2266d0cfa008857d957de8c12a646d8c9e96e /docker/api/network.py | |
parent | 63875477fa2e0a529fcf52e36a3f9cb3db861000 (diff) |
Import python-docker_1.9.0.orig.tar.gz
Diffstat (limited to 'docker/api/network.py')
-rw-r--r-- | docker/api/network.py | 25 |
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) |