Skip to content

Commit febebbc

Browse files
authored
Merge pull request #124 from stealthflame/issue118
GCI Task: [netjsonconfig] TypeError: can only concatenate list (not "str") to list
2 parents 3d25204 + be7fb2b commit febebbc

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

netjsonconfig/backends/openwrt/converters/interfaces.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,10 @@ def __netjson_addresses(self, interface):
256256
netmask = interface.pop('netmask', 32)
257257
parsed_ip = self.__netjson_parse_ip(ipv4, netmask)
258258
ipv4 = [parsed_ip] if parsed_ip else []
259+
if not isinstance(ipv6, list):
260+
netmask = interface.pop('netmask', 128)
261+
parsed_ip = self.__netjson_parse_ip(ipv6, netmask)
262+
ipv6 = [parsed_ip] if parsed_ip else []
259263
if proto.startswith('dhcp'):
260264
family = 'ipv4' if proto == 'dhcp' else 'ipv6'
261265
addresses.append({'proto': 'dhcp', 'family': family})

tests/openwrt/test_interfaces.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,22 @@ def test_parse_incorrect_ipaddr_netmask(self):
163163
}
164164
]
165165
}
166+
_eth0_64 = {
167+
"interfaces": [
168+
{
169+
"name": "eth0",
170+
"type": "ethernet",
171+
"addresses": [
172+
{
173+
"address": "2aa1:4aaa:2aaa:1d::5",
174+
"mask": 64,
175+
"proto": "static",
176+
"family": "ipv6"
177+
}
178+
]
179+
}
180+
]
181+
}
166182

167183
def test_parse_missing_ipv4_mask(self):
168184
native = self._tabs("""package network
@@ -197,6 +213,17 @@ def test_parse_missing_ipv4_mask_list(self):
197213
o = OpenWrt(native=native)
198214
self.assertEqual(o.config, self._eth0_32)
199215

216+
def test_parse_missing_ipv6_mask_list(self):
217+
native = self._tabs("""package network
218+
219+
config interface 'eth0'
220+
option ifname 'eth0'
221+
option ip6addr '2aa1:4aaa:2aaa:1d::5/64'
222+
option proto 'static'
223+
""")
224+
o = OpenWrt(native=native)
225+
self.assertEqual(o.config, self._eth0_64)
226+
200227
def test_parse_ipv4_list(self):
201228
native = self._tabs("""package network
202229

0 commit comments

Comments
 (0)