diff options
author | Aanand Prasad <aanand.prasad@gmail.com> | 2016-01-18 17:48:11 +0000 |
---|---|---|
committer | Aanand Prasad <aanand.prasad@gmail.com> | 2016-01-18 18:41:18 +0000 |
commit | 21a5a0a049611cd08636d1325b8dace44fdb9f9e (patch) | |
tree | fe74311d2cfe9371dd75b0f2b478eb79c1968e3c | |
parent | bd658f7f7fdbefd6fd96907b2800583eaa2db373 (diff) | |
download | docker-py-21a5a0a049611cd08636d1325b8dace44fdb9f9e.tar.gz |
Normalise/fix networking API JSON keys
- Use CamelCase
- `auxaddresses` -> `AuxiliaryAddresses`
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
-rw-r--r-- | docker/api/network.py | 8 | ||||
-rw-r--r-- | docker/utils/utils.py | 12 | ||||
-rw-r--r-- | tests/integration/network_test.py | 41 | ||||
-rw-r--r-- | tests/unit/network_test.py | 22 | ||||
-rw-r--r-- | tests/unit/utils_test.py | 12 |
5 files changed, 68 insertions, 27 deletions
diff --git a/docker/api/network.py b/docker/api/network.py index 37b409c..a6429f4 100644 --- a/docker/api/network.py +++ b/docker/api/network.py @@ -24,10 +24,10 @@ class NetworkApiMixin(object): raise TypeError('options must be a dictionary') data = { - 'name': name, - 'driver': driver, - 'options': options, - 'ipam': ipam, + 'Name': name, + 'Driver': driver, + 'Options': options, + 'IPAM': ipam, } url = self._url("/networks/create") res = self._post_json(url, data=data) diff --git a/docker/utils/utils.py b/docker/utils/utils.py index 5a23201..3f1be64 100644 --- a/docker/utils/utils.py +++ b/docker/utils/utils.py @@ -47,17 +47,17 @@ BYTE_UNITS = { def create_ipam_pool(subnet=None, iprange=None, gateway=None, aux_addresses=None): return { - 'subnet': subnet, - 'iprange': iprange, - 'gateway': gateway, - 'auxaddresses': aux_addresses + 'Subnet': subnet, + 'IPRange': iprange, + 'Gateway': gateway, + 'AuxiliaryAddresses': aux_addresses } def create_ipam_config(driver='default', pool_configs=None): return { - 'driver': driver, - 'config': pool_configs or [] + 'Driver': driver, + 'Config': pool_configs or [] } diff --git a/tests/integration/network_test.py b/tests/integration/network_test.py index a06e0d5..a6ec089 100644 --- a/tests/integration/network_test.py +++ b/tests/integration/network_test.py @@ -1,6 +1,8 @@ import random import docker +from docker.utils import create_ipam_config +from docker.utils import create_ipam_pool import pytest from .. import helpers @@ -43,6 +45,45 @@ class TestNetworks(helpers.BaseTestCase): self.assertEqual(net['IPAM']['Driver'], 'default') @requires_api_version('1.21') + def test_create_network_with_ipam_config(self): + _, net_id = self.create_network( + ipam=create_ipam_config( + driver='default', + pool_configs=[ + create_ipam_pool( + subnet="172.28.0.0/16", + iprange="172.28.5.0/24", + gateway="172.28.5.254", + aux_addresses={ + "a": "172.28.1.5", + "b": "172.28.1.6", + "c": "172.28.1.7", + }, + ), + ], + ), + ) + + net = self.client.inspect_network(net_id) + ipam = net['IPAM'] + + assert ipam.pop('Options', None) is None + + assert ipam == { + 'Driver': 'default', + 'Config': [{ + 'Subnet': "172.28.0.0/16", + 'IPRange': "172.28.5.0/24", + 'Gateway': "172.28.5.254", + 'AuxiliaryAddresses': { + "a": "172.28.1.5", + "b": "172.28.1.6", + "c": "172.28.1.7", + }, + }], + } + + @requires_api_version('1.21') def test_create_network_with_host_driver_fails(self): net_name = 'dockerpy{}'.format(random.getrandbits(24))[:14] diff --git a/tests/unit/network_test.py b/tests/unit/network_test.py index fef3df3..492bcc7 100644 --- a/tests/unit/network_test.py +++ b/tests/unit/network_test.py @@ -69,7 +69,7 @@ class NetworkTest(DockerClientTest): self.assertEqual( json.loads(post.call_args[1]['data']), - {"name": "foo"}) + {"Name": "foo"}) opts = { 'com.docker.network.bridge.enable_icc': False, @@ -79,7 +79,7 @@ class NetworkTest(DockerClientTest): self.assertEqual( json.loads(post.call_args[1]['data']), - {"name": "foo", "driver": "bridge", "options": opts}) + {"Name": "foo", "Driver": "bridge", "Options": opts}) ipam_pool_config = create_ipam_pool(subnet="192.168.52.0/24", gateway="192.168.52.254") @@ -91,15 +91,15 @@ class NetworkTest(DockerClientTest): self.assertEqual( json.loads(post.call_args[1]['data']), { - "name": "bar", - "driver": "bridge", - "ipam": { - "driver": "default", - "config": [{ - "iprange": None, - "gateway": "192.168.52.254", - "subnet": "192.168.52.0/24", - "auxaddresses": None + "Name": "bar", + "Driver": "bridge", + "IPAM": { + "Driver": "default", + "Config": [{ + "IPRange": None, + "Gateway": "192.168.52.254", + "Subnet": "192.168.52.0/24", + "AuxiliaryAddresses": None, }] } }) diff --git a/tests/unit/utils_test.py b/tests/unit/utils_test.py index 1ea13a9..caf35b2 100644 --- a/tests/unit/utils_test.py +++ b/tests/unit/utils_test.py @@ -442,12 +442,12 @@ class UtilsTest(base.BaseTestCase): ipam_config = create_ipam_config(pool_configs=[ipam_pool]) self.assertEqual(ipam_config, { - 'driver': 'default', - 'config': [{ - 'subnet': '192.168.52.0/24', - 'gateway': '192.168.52.254', - 'auxaddresses': None, - 'iprange': None + 'Driver': 'default', + 'Config': [{ + 'Subnet': '192.168.52.0/24', + 'Gateway': '192.168.52.254', + 'AuxiliaryAddresses': None, + 'IPRange': None, }] }) |