Skip to content

Commit b0def53

Browse files
pandafynemesifier
authored andcommitted
[fix:openwrt] Auto-generate logical name for VLAN 802.1X interface #335
If the "network" field in the NetJSON is empty, then auto-generate logical name for the interface. Fixes #335
1 parent f1ff848 commit b0def53

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

netjsonconfig/backends/openwrt/converters/interfaces.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,8 @@ def _intermediate_vxlan(self, interface):
232232

233233
def _intermediate_8021_vlan(self, interface):
234234
interface['name'] = '{}.{}'.format(interface['ifname'], interface['vid'])
235-
interface['.name'] = interface.get(
236-
'network', 'vlan_{}_{}'.format(interface['.name'], interface['vid'])
235+
interface['.name'] = interface.get('network') or 'vlan_{}_{}'.format(
236+
interface['.name'], interface['vid']
237237
)
238238
return interface
239239

tests/openwrt/test_interfaces_dsa.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2029,6 +2029,13 @@ def test_parse_vlan8021q(self):
20292029
expected['interfaces'][0]['network'] = 'vlan_br_lan_1'
20302030
self.assertEqual(expected, o.config)
20312031

2032+
def test_render_vlan8021q_empty_network(self):
2033+
netjson = deepcopy(self._vlan8021q_netjson)
2034+
netjson['interfaces'][0]['network'] = ''
2035+
o = OpenWrt(netjson)
2036+
expected = self._tabs(self._vlan8021q_uci)
2037+
self.assertEqual(o.render(), expected)
2038+
20322039
_vlan8021ad_netjson = {
20332040
"interfaces": [
20342041
{"type": "8021ad", "vid": 6, "name": "eth0", "network": "iot_vlan"}

0 commit comments

Comments
 (0)