summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAanand Prasad <aanand.prasad@gmail.com>2016-01-18 17:48:11 +0000
committerAanand Prasad <aanand.prasad@gmail.com>2016-01-18 18:41:18 +0000
commit21a5a0a049611cd08636d1325b8dace44fdb9f9e (patch)
treefe74311d2cfe9371dd75b0f2b478eb79c1968e3c
parentbd658f7f7fdbefd6fd96907b2800583eaa2db373 (diff)
downloaddocker-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.py8
-rw-r--r--docker/utils/utils.py12
-rw-r--r--tests/integration/network_test.py41
-rw-r--r--tests/unit/network_test.py22
-rw-r--r--tests/unit/utils_test.py12
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,
}]
})