Normalise/fix networking API JSON keys

- Use CamelCase
- `auxaddresses` -> `AuxiliaryAddresses`

Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
Aanand Prasad 2016-01-18 17:48:11 +00:00
parent bd658f7f7f
commit 21a5a0a049
5 changed files with 68 additions and 27 deletions

View File

@ -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)

View File

@ -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 []
}

View File

@ -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
@ -42,6 +44,45 @@ class TestNetworks(helpers.BaseTestCase):
self.assertEqual(net['Scope'], 'local')
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]

View File

@ -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,
}]
}
})

View File

@ -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,
}]
})