summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAanand Prasad <aanand.prasad@gmail.com>2016-07-26 11:07:48 +0100
committerGitHub <noreply@github.com>2016-07-26 11:07:48 +0100
commit106c08faba302bb2454b86c7ff2b8d115d2cf072 (patch)
tree8ef409d8bebe6c38264e2ea5f37666c58b9b5eca
parent30644d8ae06a1591537e47029ca07a5496172bf7 (diff)
parentcea73760863182035ddbf1c336b388df283c7431 (diff)
downloaddocker-py-106c08faba302bb2454b86c7ff2b8d115d2cf072.tar.gz
Merge pull request #1139 from docker/compose-3757-linklocal-fix
Send LinkLocalIPs as part of IPAMConfig dictionary
-rw-r--r--docker/utils/utils.py8
-rw-r--r--tests/integration/network_test.py21
2 files changed, 25 insertions, 4 deletions
diff --git a/docker/utils/utils.py b/docker/utils/utils.py
index b38cda4..4e48fc7 100644
--- a/docker/utils/utils.py
+++ b/docker/utils/utils.py
@@ -894,15 +894,15 @@ def create_endpoint_config(version, aliases=None, links=None,
if ipv6_address:
ipam_config['IPv6Address'] = ipv6_address
- if ipam_config:
- endpoint_config['IPAMConfig'] = ipam_config
-
if link_local_ips is not None:
if version_lt(version, '1.24'):
raise errors.InvalidVersion(
'link_local_ips is not supported for API version < 1.24'
)
- endpoint_config['LinkLocalIPs'] = link_local_ips
+ ipam_config['LinkLocalIPs'] = link_local_ips
+
+ if ipam_config:
+ endpoint_config['IPAMConfig'] = ipam_config
return endpoint_config
diff --git a/tests/integration/network_test.py b/tests/integration/network_test.py
index f719fea..27e1b14 100644
--- a/tests/integration/network_test.py
+++ b/tests/integration/network_test.py
@@ -249,6 +249,27 @@ class TestNetworks(helpers.BaseTestCase):
'2001:389::f00d'
)
+ @requires_api_version('1.24')
+ def test_create_with_linklocal_ips(self):
+ container = self.client.create_container(
+ 'busybox', 'top',
+ networking_config=self.client.create_networking_config(
+ {
+ 'bridge': self.client.create_endpoint_config(
+ link_local_ips=['169.254.8.8']
+ )
+ }
+ ),
+ host_config=self.client.create_host_config(network_mode='bridge')
+ )
+ self.tmp_containers.append(container)
+ self.client.start(container)
+ container_data = self.client.inspect_container(container)
+ net_cfg = container_data['NetworkSettings']['Networks']['bridge']
+ assert 'IPAMConfig' in net_cfg
+ assert 'LinkLocalIPs' in net_cfg['IPAMConfig']
+ assert net_cfg['IPAMConfig']['LinkLocalIPs'] == ['169.254.8.8']
+
@requires_api_version('1.22')
def test_create_with_links(self):
net_name, net_id = self.create_network()