diff options
author | Joffrey F <joffrey@docker.com> | 2016-07-25 15:04:04 -0700 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2016-07-25 15:04:04 -0700 |
commit | cea73760863182035ddbf1c336b388df283c7431 (patch) | |
tree | 8ef409d8bebe6c38264e2ea5f37666c58b9b5eca | |
parent | 30644d8ae06a1591537e47029ca07a5496172bf7 (diff) | |
download | docker-py-cea73760863182035ddbf1c336b388df283c7431.tar.gz |
Send LinkLocalIPs as part of IPAMConfig dictionarycompose-3757-linklocal-fix
Signed-off-by: Joffrey F <joffrey@docker.com>
-rw-r--r-- | docker/utils/utils.py | 8 | ||||
-rw-r--r-- | tests/integration/network_test.py | 21 |
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() |