Skip to content

Commit 21a5a0a

Browse files
committed
Normalise/fix networking API JSON keys
- Use CamelCase - `auxaddresses` -> `AuxiliaryAddresses` Signed-off-by: Aanand Prasad <[email protected]>
1 parent bd658f7 commit 21a5a0a

File tree

5 files changed

+68
-27
lines changed

5 files changed

+68
-27
lines changed

docker/api/network.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ def create_network(self, name, driver=None, options=None, ipam=None):
2424
raise TypeError('options must be a dictionary')
2525

2626
data = {
27-
'name': name,
28-
'driver': driver,
29-
'options': options,
30-
'ipam': ipam,
27+
'Name': name,
28+
'Driver': driver,
29+
'Options': options,
30+
'IPAM': ipam,
3131
}
3232
url = self._url("/networks/create")
3333
res = self._post_json(url, data=data)

docker/utils/utils.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,17 @@
4747
def create_ipam_pool(subnet=None, iprange=None, gateway=None,
4848
aux_addresses=None):
4949
return {
50-
'subnet': subnet,
51-
'iprange': iprange,
52-
'gateway': gateway,
53-
'auxaddresses': aux_addresses
50+
'Subnet': subnet,
51+
'IPRange': iprange,
52+
'Gateway': gateway,
53+
'AuxiliaryAddresses': aux_addresses
5454
}
5555

5656

5757
def create_ipam_config(driver='default', pool_configs=None):
5858
return {
59-
'driver': driver,
60-
'config': pool_configs or []
59+
'Driver': driver,
60+
'Config': pool_configs or []
6161
}
6262

6363

tests/integration/network_test.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import random
22

33
import docker
4+
from docker.utils import create_ipam_config
5+
from docker.utils import create_ipam_pool
46
import pytest
57

68
from .. import helpers
@@ -42,6 +44,45 @@ def test_inspect_network(self):
4244
self.assertEqual(net['Scope'], 'local')
4345
self.assertEqual(net['IPAM']['Driver'], 'default')
4446

47+
@requires_api_version('1.21')
48+
def test_create_network_with_ipam_config(self):
49+
_, net_id = self.create_network(
50+
ipam=create_ipam_config(
51+
driver='default',
52+
pool_configs=[
53+
create_ipam_pool(
54+
subnet="172.28.0.0/16",
55+
iprange="172.28.5.0/24",
56+
gateway="172.28.5.254",
57+
aux_addresses={
58+
"a": "172.28.1.5",
59+
"b": "172.28.1.6",
60+
"c": "172.28.1.7",
61+
},
62+
),
63+
],
64+
),
65+
)
66+
67+
net = self.client.inspect_network(net_id)
68+
ipam = net['IPAM']
69+
70+
assert ipam.pop('Options', None) is None
71+
72+
assert ipam == {
73+
'Driver': 'default',
74+
'Config': [{
75+
'Subnet': "172.28.0.0/16",
76+
'IPRange': "172.28.5.0/24",
77+
'Gateway': "172.28.5.254",
78+
'AuxiliaryAddresses': {
79+
"a": "172.28.1.5",
80+
"b": "172.28.1.6",
81+
"c": "172.28.1.7",
82+
},
83+
}],
84+
}
85+
4586
@requires_api_version('1.21')
4687
def test_create_network_with_host_driver_fails(self):
4788
net_name = 'dockerpy{}'.format(random.getrandbits(24))[:14]

tests/unit/network_test.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def test_create_network(self):
6969

7070
self.assertEqual(
7171
json.loads(post.call_args[1]['data']),
72-
{"name": "foo"})
72+
{"Name": "foo"})
7373

7474
opts = {
7575
'com.docker.network.bridge.enable_icc': False,
@@ -79,7 +79,7 @@ def test_create_network(self):
7979

8080
self.assertEqual(
8181
json.loads(post.call_args[1]['data']),
82-
{"name": "foo", "driver": "bridge", "options": opts})
82+
{"Name": "foo", "Driver": "bridge", "Options": opts})
8383

8484
ipam_pool_config = create_ipam_pool(subnet="192.168.52.0/24",
8585
gateway="192.168.52.254")
@@ -91,15 +91,15 @@ def test_create_network(self):
9191
self.assertEqual(
9292
json.loads(post.call_args[1]['data']),
9393
{
94-
"name": "bar",
95-
"driver": "bridge",
96-
"ipam": {
97-
"driver": "default",
98-
"config": [{
99-
"iprange": None,
100-
"gateway": "192.168.52.254",
101-
"subnet": "192.168.52.0/24",
102-
"auxaddresses": None
94+
"Name": "bar",
95+
"Driver": "bridge",
96+
"IPAM": {
97+
"Driver": "default",
98+
"Config": [{
99+
"IPRange": None,
100+
"Gateway": "192.168.52.254",
101+
"Subnet": "192.168.52.0/24",
102+
"AuxiliaryAddresses": None,
103103
}]
104104
}
105105
})

tests/unit/utils_test.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -442,12 +442,12 @@ def test_create_ipam_config(self):
442442

443443
ipam_config = create_ipam_config(pool_configs=[ipam_pool])
444444
self.assertEqual(ipam_config, {
445-
'driver': 'default',
446-
'config': [{
447-
'subnet': '192.168.52.0/24',
448-
'gateway': '192.168.52.254',
449-
'auxaddresses': None,
450-
'iprange': None
445+
'Driver': 'default',
446+
'Config': [{
447+
'Subnet': '192.168.52.0/24',
448+
'Gateway': '192.168.52.254',
449+
'AuxiliaryAddresses': None,
450+
'IPRange': None,
451451
}]
452452
})
453453

0 commit comments

Comments
 (0)