From d4090f0569407d20d896591778c5ff8749104d7f Mon Sep 17 00:00:00 2001 From: Aryamanz29 Date: Mon, 31 Jul 2023 18:06:45 +0530 Subject: [PATCH] [fix] Fixed zerotier openwrt configuration for multiple servers --- netjsonconfig/backends/openwrt/converters/zerotier.py | 7 ++++--- netjsonconfig/backends/zerotier/zerotier.py | 5 +++-- tests/openwrt/test_backend.py | 10 +++++++--- tests/openwrt/test_zerotier.py | 8 ++++---- tests/zerotier/test_backend.py | 4 ++-- 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/netjsonconfig/backends/openwrt/converters/zerotier.py b/netjsonconfig/backends/openwrt/converters/zerotier.py index eb9c37495..38b315ec2 100644 --- a/netjsonconfig/backends/openwrt/converters/zerotier.py +++ b/netjsonconfig/backends/openwrt/converters/zerotier.py @@ -10,18 +10,19 @@ class ZeroTier(OpenWrtConverter, BaseZeroTier): def __intermediate_vpn(self, vpn): vpn.update( { - '.name': self._get_uci_name(vpn.pop('name')), + '.name': self._get_uci_name('ow_zt'), '.type': 'zerotier', 'join': vpn.pop('id'), 'enabled': not vpn.pop('disabled', False), } ) + del vpn['name'] return super().__intermediate_vpn(vpn, remove=['']) def __netjson_vpn(self, vpn): vpn['id'] = vpn.pop('join') - vpn['name'] = vpn.pop('.name').replace('_', '-') - # 'disabled' defaults to False in OpenWRT + vpn['name'] = vpn.pop('.name') + # 'enabled' defaults to False in OpenWRT vpn['disabled'] = vpn.pop('enabled', '0') == '0' del vpn['.type'] return super().__netjson_vpn(vpn) diff --git a/netjsonconfig/backends/zerotier/zerotier.py b/netjsonconfig/backends/zerotier/zerotier.py index 87c9f53ce..959718e2c 100644 --- a/netjsonconfig/backends/zerotier/zerotier.py +++ b/netjsonconfig/backends/zerotier/zerotier.py @@ -15,10 +15,11 @@ class ZeroTier(BaseVpnBackend): config_suffix = config_suffix @classmethod - def auto_client(cls, name='', nwid=None, disabled=False): + def auto_client(cls, nwid=None, identity_secret=None, disabled=False): nwid = nwid or [''] return { 'id': nwid, - 'name': name, + 'name': 'ow_zt', + 'secret': identity_secret, 'disabled': disabled, } diff --git a/tests/openwrt/test_backend.py b/tests/openwrt/test_backend.py index 77b30d9f8..3f3f584c0 100644 --- a/tests/openwrt/test_backend.py +++ b/tests/openwrt/test_backend.py @@ -548,22 +548,26 @@ def test_vxlan_wireguard_auto_client(self): def test_zerotier_auto_client(self): with self.subTest('No arguments provided'): - expected = {'zerotier': [{'id': [''], 'name': '', 'disabled': False}]} + expected = { + 'zerotier': [ + {'id': [''], 'name': 'ow_zt', 'disabled': False, 'secret': None} + ] + } self.assertDictEqual(OpenWrt.zerotier_auto_client(), expected) with self.subTest('Required arguments provided'): expected = { 'zerotier': [ { 'id': ['9536600adf654321'], - 'name': 'zerotier-openwisp-network', + 'name': 'ow_zt', 'disabled': False, + 'secret': None, } ] } self.assertDictEqual( OpenWrt.zerotier_auto_client( nwid=['9536600adf654321'], - name='zerotier-openwisp-network', ), expected, ) diff --git a/tests/openwrt/test_zerotier.py b/tests/openwrt/test_zerotier.py index a94b81a41..5aa3ce70b 100644 --- a/tests/openwrt/test_zerotier.py +++ b/tests/openwrt/test_zerotier.py @@ -10,7 +10,7 @@ class TestZeroTier(unittest.TestCase, _TabsMixin): "zerotier": [ { "id": ["9536600adf654321", "9536600adf654322"], - "name": "zerotier-openwisp-network", + "name": "ow_zt", }, ] } @@ -20,7 +20,7 @@ def test_render_zerotier(self): expected = self._tabs( """package zerotier -config zerotier 'zerotier_openwisp_network' +config zerotier 'ow_zt' option enabled '1' list join '9536600adf654321' list join '9536600adf654322' @@ -32,7 +32,7 @@ def test_parse_zerotier(self): native = self._tabs( """package zerotier -config zerotier 'zerotier_openwisp_network' +config zerotier 'ow_zt' option enabled '0' list join '9536600adf654321' list join '9536600adf654322' @@ -42,7 +42,7 @@ def test_parse_zerotier(self): "zerotier": [ { "id": ["9536600adf654321", "9536600adf654322"], - "name": "zerotier-openwisp-network", + "name": "ow_zt", "disabled": True, }, ] diff --git a/tests/zerotier/test_backend.py b/tests/zerotier/test_backend.py index 177369250..463f977a9 100644 --- a/tests/zerotier/test_backend.py +++ b/tests/zerotier/test_backend.py @@ -386,14 +386,14 @@ def test_generate(self): def test_auto_client(self): expected = { "id": ["9536600adf654321"], - "name": "zerotier-openwisp-network", + "name": "ow_zt", "disabled": False, + "secret": None, } test_config = self._TEST_CONFIG["zerotier"][0] self.assertEqual( ZeroTier.auto_client( nwid=[test_config['id']], - name=test_config['name'], ), expected, )