diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/conf_mode/interfaces-l2tpv3.py | 11 | ||||
| -rwxr-xr-x | src/migration-scripts/interfaces/19-to-20 | 48 | 
2 files changed, 29 insertions, 30 deletions
| diff --git a/src/conf_mode/interfaces-l2tpv3.py b/src/conf_mode/interfaces-l2tpv3.py index 5bae66074..9b6ddd5aa 100755 --- a/src/conf_mode/interfaces-l2tpv3.py +++ b/src/conf_mode/interfaces-l2tpv3.py @@ -34,7 +34,6 @@ airbag.enable()  k_mod = ['l2tp_eth', 'l2tp_netlink', 'l2tp_ip', 'l2tp_ip6'] -  def get_config(config=None):      """      Retrive CLI config as dictionary. Dictionary can never be empty, as at least the @@ -65,15 +64,15 @@ def verify(l2tpv3):      interface = l2tpv3['ifname'] -    for key in ['local_ip', 'remote_ip', 'tunnel_id', 'peer_tunnel_id', +    for key in ['source_address', 'remote', 'tunnel_id', 'peer_tunnel_id',                  'session_id', 'peer_session_id']:          if key not in l2tpv3:              tmp = key.replace('_', '-') -            raise ConfigError(f'L2TPv3 {tmp} must be configured!') +            raise ConfigError(f'Missing mandatory L2TPv3 option: "{tmp}"!') -    if not is_addr_assigned(l2tpv3['local_ip']): -        raise ConfigError('L2TPv3 local-ip address ' -                          '"{local_ip}" is not configured!'.format(**l2tpv3)) +    if not is_addr_assigned(l2tpv3['source_address']): +        raise ConfigError('L2TPv3 source-address address "{source_address}" ' +                          'not configured on any interface!'.format(**l2tpv3))      verify_mtu_ipv6(l2tpv3)      verify_address(l2tpv3) diff --git a/src/migration-scripts/interfaces/19-to-20 b/src/migration-scripts/interfaces/19-to-20 index ed2780b92..e96663e54 100755 --- a/src/migration-scripts/interfaces/19-to-20 +++ b/src/migration-scripts/interfaces/19-to-20 @@ -28,30 +28,30 @@ if __name__ == '__main__':          config_file = f.read()      config = ConfigTree(config_file) -    base = ['interfaces', 'tunnel'] - -    if not config.exists(base): -        # Nothing to do -        exit(0) - -    # -    # Migrate "interface tunnel <tunX> encapsulation gre-bridge" to gretap -    # Migrate "interface tunnel <tunX> local-ip" to source-address -    # Migrate "interface tunnel <tunX> remote-ip" to remote -    for interface in config.list_nodes(base): -        encap_path = base + [interface, 'encapsulation'] -        if config.exists(encap_path): -            tmp = config.return_value(encap_path) -            if tmp == 'gre-bridge': -                config.set(encap_path, value='gretap') - -        local_ip_path = base + [interface, 'local-ip'] -        if config.exists(local_ip_path): -            config.rename(local_ip_path, 'source-address') - -        remote_ip_path = base + [interface, 'remote-ip'] -        if config.exists(remote_ip_path): -            config.rename(remote_ip_path, 'remote') + +    for type in ['tunnel', 'l2tpv3']: +        base = ['interfaces', type] +        if not config.exists(base): +            # Nothing to do +            continue + +        for interface in config.list_nodes(base): +            # Migrate "interface tunnel <tunX> encapsulation gre-bridge" to gretap +            encap_path = base + [interface, 'encapsulation'] +            if type == 'tunnel' and config.exists(encap_path): +                tmp = config.return_value(encap_path) +                if tmp == 'gre-bridge': +                    config.set(encap_path, value='gretap') + +            # Migrate "interface tunnel|l2tpv3 <interface> local-ip" to source-address +            # Migrate "interface tunnel|l2tpv3 <interface> remote-ip" to remote +            local_ip_path = base + [interface, 'local-ip'] +            if config.exists(local_ip_path): +                config.rename(local_ip_path, 'source-address') + +            remote_ip_path = base + [interface, 'remote-ip'] +            if config.exists(remote_ip_path): +                config.rename(remote_ip_path, 'remote')      try:          with open(file_name, 'w') as f: | 
