diff options
Diffstat (limited to 'src/migration-scripts')
| -rwxr-xr-x | src/migration-scripts/l2tp/4-to-5 | 20 | ||||
| -rwxr-xr-x | src/migration-scripts/pppoe-server/6-to-7 | 21 | ||||
| -rwxr-xr-x | src/migration-scripts/sstp/4-to-5 | 19 | ||||
| -rwxr-xr-x | src/migration-scripts/system/26-to-27 | 47 | 
4 files changed, 93 insertions, 14 deletions
| diff --git a/src/migration-scripts/l2tp/4-to-5 b/src/migration-scripts/l2tp/4-to-5 index fe8ab357e..496dc83d6 100755 --- a/src/migration-scripts/l2tp/4-to-5 +++ b/src/migration-scripts/l2tp/4-to-5 @@ -45,12 +45,22 @@ if not config.exists(pool_base):      exit(0)  default_pool = ''  range_pool_name = 'default-range-pool' -subnet_pool_name = 'default-subnet-pool' +subnet_base_name = 'default-subnet-pool' +number = 1 +subnet_pool_name = f'{subnet_base_name}-{number}' +prev_subnet_pool = subnet_pool_name  if config.exists(pool_base + ['subnet']): -    subnet = config.return_value(pool_base + ['subnet']) -    config.delete(pool_base + ['subnet']) -    config.set(pool_base + [subnet_pool_name, 'range'], value=subnet)      default_pool = subnet_pool_name +    for subnet in config.return_values(pool_base + ['subnet']): +        config.set(pool_base + [subnet_pool_name, 'range'], value=subnet) +        if prev_subnet_pool != subnet_pool_name: +            config.set(pool_base + [prev_subnet_pool, 'next-pool'], +                       value=subnet_pool_name) +            prev_subnet_pool = subnet_pool_name +        number += 1 +        subnet_pool_name = f'{subnet_base_name}-{number}' + +    config.delete(pool_base + ['subnet'])  if config.exists(pool_base + ['start']) and config.exists(pool_base + ['stop']):      start_ip = config.return_value(pool_base + ['start']) @@ -61,7 +71,7 @@ if config.exists(pool_base + ['start']) and config.exists(pool_base + ['stop']):      config.set(pool_base + [range_pool_name, 'range'], value=ip_range)      if default_pool:          config.set(pool_base + [range_pool_name, 'next-pool'], -                   value=subnet_pool_name) +                   value=default_pool)      default_pool = range_pool_name  if default_pool: diff --git a/src/migration-scripts/pppoe-server/6-to-7 b/src/migration-scripts/pppoe-server/6-to-7 index 34996d8fe..d856c1f34 100755 --- a/src/migration-scripts/pppoe-server/6-to-7 +++ b/src/migration-scripts/pppoe-server/6-to-7 @@ -50,13 +50,24 @@ if not config.exists(pool_base):      exit(0)  default_pool = ''  range_pool_name = 'default-range-pool' -subnet_pool_name = 'default-subnet-pool' + +subnet_base_name = 'default-subnet-pool' +number = 1 +subnet_pool_name = f'{subnet_base_name}-{number}' +prev_subnet_pool = subnet_pool_name  #Default nameless pools migrations  if config.exists(pool_base + ['subnet']): -    subnet = config.return_value(pool_base + ['subnet']) -    config.delete(pool_base + ['subnet']) -    config.set(pool_base + [subnet_pool_name, 'range'], value=subnet)      default_pool = subnet_pool_name +    for subnet in config.return_values(pool_base + ['subnet']): +        config.set(pool_base + [subnet_pool_name, 'range'], value=subnet) +        if prev_subnet_pool != subnet_pool_name: +            config.set(pool_base + [prev_subnet_pool, 'next-pool'], +                       value=subnet_pool_name) +            prev_subnet_pool = subnet_pool_name +        number += 1 +        subnet_pool_name = f'{subnet_base_name}-{number}' + +    config.delete(pool_base + ['subnet'])  if config.exists(pool_base + ['start']) and config.exists(pool_base + ['stop']):      start_ip = config.return_value(pool_base + ['start']) @@ -67,7 +78,7 @@ if config.exists(pool_base + ['start']) and config.exists(pool_base + ['stop']):      config.set(pool_base + [range_pool_name, 'range'], value=ip_range)      if default_pool:          config.set(pool_base + [range_pool_name, 'next-pool'], -                   value=subnet_pool_name) +                   value=default_pool)      default_pool = range_pool_name  gateway = '' diff --git a/src/migration-scripts/sstp/4-to-5 b/src/migration-scripts/sstp/4-to-5 index 0f332e04f..3a86c79ec 100755 --- a/src/migration-scripts/sstp/4-to-5 +++ b/src/migration-scripts/sstp/4-to-5 @@ -43,12 +43,23 @@ if not config.exists(base):  if not config.exists(pool_base):      exit(0) -subnet_pool_name = 'default-subnet-pool' +subnet_base_name = 'default-subnet-pool' +number = 1 +subnet_pool_name = f'{subnet_base_name}-{number}' +prev_subnet_pool = subnet_pool_name  if config.exists(pool_base + ['subnet']): -    subnet = config.return_value(pool_base + ['subnet']) +    default_pool = subnet_pool_name +    for subnet in config.return_values(pool_base + ['subnet']): +        config.set(pool_base + [subnet_pool_name, 'range'], value=subnet) +        if prev_subnet_pool != subnet_pool_name: +            config.set(pool_base + [prev_subnet_pool, 'next-pool'], +                       value=subnet_pool_name) +            prev_subnet_pool = subnet_pool_name +        number += 1 +        subnet_pool_name = f'{subnet_base_name}-{number}' +      config.delete(pool_base + ['subnet']) -    config.set(pool_base + [subnet_pool_name, 'range'], value=subnet) -    config.set(base + ['default-pool'], value=subnet_pool_name) +    config.set(base + ['default-pool'], value=default_pool)  # format as tag node  config.set_tag(pool_base) diff --git a/src/migration-scripts/system/26-to-27 b/src/migration-scripts/system/26-to-27 new file mode 100755 index 000000000..80bb82cbd --- /dev/null +++ b/src/migration-scripts/system/26-to-27 @@ -0,0 +1,47 @@ +#!/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/>. +# +# T5877: migrate 'system domain-search domain' to 'system domain-search' + +from sys import exit, argv +from vyos.configtree import ConfigTree + +if len(argv) < 2: +    print("Must specify file name!") +    exit(1) + +file_name = argv[1] +with open(file_name, 'r') as f: +    config_file = f.read() + +base = ['system', 'domain-search'] +config = ConfigTree(config_file) + +if not config.exists(base): +    exit(0) + +if config.exists(base + ['domain']): +    entries = config.return_values(base + ['domain']) +    config.delete(base + ['domain']) +    for entry in entries: +        config.set(base, value=entry, replace=False) + +try: +    with open(file_name, 'w') as f: +        f.write(config.to_string()) +except OSError as e: +    print(f'Failed to save the modified config: {e}') +    exit(1) | 
