From 656db96b4a8b0db28d4b19ca60c95036c995175b Mon Sep 17 00:00:00 2001 From: Yuval Goldberg Date: Thu, 19 Dec 2019 15:35:08 +0200 Subject: [PATCH] Fix mac_address connect usage in network functions && addind appropriate test Signed-off-by: Yuval Goldberg --- docker/api/network.py | 3 ++- docker/types/networks.py | 2 +- tests/integration/api_network_test.py | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/docker/api/network.py b/docker/api/network.py index 19407bf3..1709b621 100644 --- a/docker/api/network.py +++ b/docker/api/network.py @@ -242,7 +242,8 @@ class NetworkApiMixin(object): "Container": container, "EndpointConfig": self.create_endpoint_config( aliases=aliases, links=links, ipv4_address=ipv4_address, - ipv6_address=ipv6_address, link_local_ips=link_local_ips + ipv6_address=ipv6_address, link_local_ips=link_local_ips, + mac_address=mac_address ), } diff --git a/docker/types/networks.py b/docker/types/networks.py index f6db26c2..442adb1e 100644 --- a/docker/types/networks.py +++ b/docker/types/networks.py @@ -28,7 +28,7 @@ class EndpointConfig(dict): raise errors.InvalidVersion( 'mac_address is not supported for API version < 1.25' ) - ipam_config['MacAddress'] = mac_address + self['MacAddress'] = mac_address if link_local_ips is not None: if version_lt(version, '1.24'): diff --git a/tests/integration/api_network_test.py b/tests/integration/api_network_test.py index 0f26827b..4b5e6fcf 100644 --- a/tests/integration/api_network_test.py +++ b/tests/integration/api_network_test.py @@ -387,6 +387,22 @@ class TestNetworks(BaseAPIIntegrationTest): net_data = container_data['NetworkSettings']['Networks'][net_name] assert net_data['IPAMConfig']['IPv6Address'] == '2001:389::f00d' + @requires_api_version('1.25') + def test_connect_with_mac_address(self): + net_name, net_id = self.create_network() + + container = self.client.create_container(TEST_IMG, 'top') + self.tmp_containers.append(container) + + self.client.connect_container_to_network( + container, net_name, mac_address='02:42:ac:11:00:02' + ) + + container_data = self.client.inspect_container(container) + + net_data = container_data['NetworkSettings']['Networks'][net_name] + assert net_data['MacAddress'] == '02:42:ac:11:00:02' + @requires_api_version('1.23') def test_create_internal_networks(self): _, net_id = self.create_network(internal=True)