diff options
| -rw-r--r-- | data/templates/dns-dynamic/ddclient.conf.j2 | 2 | ||||
| -rw-r--r-- | interface-definitions/dns-dynamic.xml.in | 6 | ||||
| -rw-r--r-- | interface-definitions/include/version/dns-dynamic-version.xml.i | 2 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_service_dns_dynamic.py | 6 | ||||
| -rw-r--r-- | src/migration-scripts/dns-dynamic/1-to-2 | 52 | 
5 files changed, 60 insertions, 8 deletions
| diff --git a/data/templates/dns-dynamic/ddclient.conf.j2 b/data/templates/dns-dynamic/ddclient.conf.j2 index 6e77abdb5..879887a1f 100644 --- a/data/templates/dns-dynamic/ddclient.conf.j2 +++ b/data/templates/dns-dynamic/ddclient.conf.j2 @@ -21,7 +21,7 @@ if{{ ipv }}={{ address }}, \  {{ host }}  {% endmacro %}  ### Autogenerated by dns_dynamic.py ### -daemon={{ timeout }} +daemon={{ interval }}  syslog=yes  ssl=yes  pid={{ config_file | replace('.conf', '.pid') }} diff --git a/interface-definitions/dns-dynamic.xml.in b/interface-definitions/dns-dynamic.xml.in index 723223f1c..07b1bf1b8 100644 --- a/interface-definitions/dns-dynamic.xml.in +++ b/interface-definitions/dns-dynamic.xml.in @@ -134,9 +134,9 @@                    </tagNode>                  </children>                </tagNode> -              <leafNode name="timeout"> +              <leafNode name="interval">                  <properties> -                  <help>Time in seconds to wait between DNS updates</help> +                  <help>Interval in seconds to wait between Dynamic DNS updates</help>                    <valueHelp>                      <format>u32:60-3600</format>                      <description>Time in seconds</description> @@ -144,7 +144,7 @@                    <constraint>                      <validator name="numeric" argument="--range 60-3600"/>                    </constraint> -                  <constraintErrorMessage>Timeout must be between 60 and 3600 seconds</constraintErrorMessage> +                  <constraintErrorMessage>Interval must be between 60 and 3600 seconds</constraintErrorMessage>                  </properties>                  <defaultValue>300</defaultValue>                </leafNode> diff --git a/interface-definitions/include/version/dns-dynamic-version.xml.i b/interface-definitions/include/version/dns-dynamic-version.xml.i index b25fc6e76..7bdb90a35 100644 --- a/interface-definitions/include/version/dns-dynamic-version.xml.i +++ b/interface-definitions/include/version/dns-dynamic-version.xml.i @@ -1,3 +1,3 @@  <!-- include start from include/version/dns-dynamic-version.xml.i --> -<syntaxVersion component='dns-dynamic' version='1'></syntaxVersion> +<syntaxVersion component='dns-dynamic' version='2'></syntaxVersion>  <!-- include end --> diff --git a/smoketest/scripts/cli/test_service_dns_dynamic.py b/smoketest/scripts/cli/test_service_dns_dynamic.py index acabc0070..6c2f584c9 100755 --- a/smoketest/scripts/cli/test_service_dns_dynamic.py +++ b/smoketest/scripts/cli/test_service_dns_dynamic.py @@ -112,7 +112,7 @@ class TestServiceDDNS(VyOSUnitTestSHIM.TestCase):      # IPv6 only DDNS service configuration      def test_02_dyndns_service_ipv6(self): -        timeout = '60' +        interval = '60'          svc_path = ['address', interface, 'service', 'dynv6']          proto = 'dyndns2'          ip_version = 'ipv6' @@ -120,7 +120,7 @@ class TestServiceDDNS(VyOSUnitTestSHIM.TestCase):          expiry_time_good = '3600'          expiry_time_bad = '360' -        self.cli_set(base_path + ['timeout', timeout]) +        self.cli_set(base_path + ['interval', interval])          self.cli_set(base_path + svc_path + ['ip-version', ip_version])          self.cli_set(base_path + svc_path + ['protocol', proto])          self.cli_set(base_path + svc_path + ['server', server]) @@ -140,7 +140,7 @@ class TestServiceDDNS(VyOSUnitTestSHIM.TestCase):          # Check the generating config parameters          ddclient_conf = cmd(f'sudo cat {DDCLIENT_CONF}') -        self.assertIn(f'daemon={timeout}', ddclient_conf) +        self.assertIn(f'daemon={interval}', ddclient_conf)          self.assertIn(f'usev6=ifv6', ddclient_conf)          self.assertIn(f'ifv6={interface}', ddclient_conf)          self.assertIn(f'protocol={proto}', ddclient_conf) diff --git a/src/migration-scripts/dns-dynamic/1-to-2 b/src/migration-scripts/dns-dynamic/1-to-2 new file mode 100644 index 000000000..b4679769c --- /dev/null +++ b/src/migration-scripts/dns-dynamic/1-to-2 @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2023 VyOS maintainers and contributors +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 or later as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +# T5708: +# - migrate "service dns dynamic timeout ..." +#        to "service dns dynamic interval ..." + +import sys +from vyos.configtree import ConfigTree + +if len(sys.argv) < 2: +    print("Must specify file name!") +    sys.exit(1) + +file_name = sys.argv[1] + +with open(file_name, 'r') as f: +    config_file = f.read() + +config = ConfigTree(config_file) + +base_path = ['service', 'dns', 'dynamic'] +timeout_path = base_path + ['timeout'] + +if not config.exists(base_path): +    # Nothing to do +    sys.exit(0) + +# Migrate "service dns dynamic timeout ..." +#      to "service dns dynamic interval ..." +if config.exists(timeout_path): +    config.rename(timeout_path, 'interval') + +try: +    with open(file_name, 'w') as f: +        f.write(config.to_string()) +except OSError as e: +    print("Failed to save the modified config: {}".format(e)) +    sys.exit(1) | 
