File tree Expand file tree Collapse file tree 2 files changed +31
-0
lines changed
netjsonconfig/backends/openwrt/converters Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Original file line number Diff line number Diff 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 })
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments