diff --git a/netjsonconfig/backends/openwrt/converters/openvpn.py b/netjsonconfig/backends/openwrt/converters/openvpn.py index 3f3902918..b9106b151 100644 --- a/netjsonconfig/backends/openwrt/converters/openvpn.py +++ b/netjsonconfig/backends/openwrt/converters/openvpn.py @@ -6,6 +6,8 @@ class OpenVpn(OpenWrtConverter, BaseOpenVpn): _uci_types = ['openvpn'] def __intermediate_vpn(self, vpn): + if vpn.get('fragment') == 0: + del vpn['fragment'] vpn.update( { '.name': self._get_uci_name(vpn.pop('name')), diff --git a/tests/openwrt/test_openvpn.py b/tests/openwrt/test_openvpn.py index 4fbf8d86c..4bfe812f6 100644 --- a/tests/openwrt/test_openvpn.py +++ b/tests/openwrt/test_openvpn.py @@ -1,4 +1,5 @@ import unittest +from copy import deepcopy from netjsonconfig import OpenWrt from netjsonconfig.utils import _TabsMixin @@ -71,7 +72,6 @@ class TestOpenVpn(_TabsMixin, unittest.TestCase): option enabled '1' option engine 'rsax' option fast_io '1' - option fragment '0' option group 'nogroup' option keepalive '20 60' option key 'key.pem' @@ -104,7 +104,9 @@ def test_render_server_mode(self): def test_parse_server_mode(self): c = OpenWrt(native=self._server_uci) - self.assertEqual(c.config, self._server_netjson) + expected = deepcopy(self._server_netjson) + del expected['openvpn'][0]['fragment'] + self.assertEqual(c.config, expected) _client_netjson = { "openvpn": [ @@ -119,7 +121,7 @@ def test_parse_server_mode(self): "down": "/home/user/down-command.sh", "disabled": False, "fast_io": False, - "fragment": 0, + "fragment": 68, "key": "key.pem", "log": "/var/log/openvpn.log", "mode": "p2p", @@ -165,7 +167,7 @@ def test_parse_server_mode(self): option down '/home/user/down-command.sh' option enabled '1' option fast_io '0' - option fragment '0' + option fragment '68' option key 'key.pem' option log '/var/log/openvpn.log' option mode 'p2p'