diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/configverify.py | 15 | ||||
| -rw-r--r-- | python/vyos/template.py | 20 | 
2 files changed, 32 insertions, 3 deletions
diff --git a/python/vyos/configverify.py b/python/vyos/configverify.py index 8e0ce701e..63edacc81 100644 --- a/python/vyos/configverify.py +++ b/python/vyos/configverify.py @@ -1,4 +1,4 @@ -# Copyright 2020-2022 VyOS maintainers and contributors <maintainers@vyos.io> +# Copyright 2020-2023 VyOS maintainers and contributors <maintainers@vyos.io>  #  # This library is free software; you can redistribute it and/or  # modify it under the terms of the GNU Lesser General Public @@ -23,6 +23,7 @@  from vyos import ConfigError  from vyos.util import dict_search +from vyos.util import dict_search_recursive  def verify_mtu(config):      """ @@ -414,7 +415,17 @@ def verify_accel_ppp_base_service(config, local_users=True):              if 'key' not in radius_config:                  raise ConfigError(f'Missing RADIUS secret key for server "{server}"') -    if 'gateway_address' not in config: +    # Check global gateway or gateway in named pool +    gateway = False +    if 'gateway_address' in config: +        gateway = True +    else: +        if dict_search_recursive(config, 'gateway_address', ['client_ip_pool', 'name']): +            for _, v in config['client_ip_pool']['name'].items(): +                if 'gateway_address' in v: +                    gateway = True +                    break +    if not gateway:          raise ConfigError('Server requires gateway-address to be configured!')      if 'name_server_ipv4' in config: diff --git a/python/vyos/template.py b/python/vyos/template.py index 15240f815..6367f51e5 100644 --- a/python/vyos/template.py +++ b/python/vyos/template.py @@ -1,4 +1,4 @@ -# Copyright 2019-2022 VyOS maintainers and contributors <maintainers@vyos.io> +# Copyright 2019-2023 VyOS maintainers and contributors <maintainers@vyos.io>  #  # This library is free software; you can redistribute it and/or  # modify it under the terms of the GNU Lesser General Public @@ -158,6 +158,24 @@ def force_to_list(value):      else:          return [value] +@register_filter('seconds_to_human') +def seconds_to_human(seconds, separator=""): +    """ Convert seconds to human-readable values like 1d6h15m23s """ +    from vyos.util import seconds_to_human +    return seconds_to_human(seconds, separator=separator) + +@register_filter('bytes_to_human') +def bytes_to_human(bytes, initial_exponent=0, precision=2): +    """ Convert bytes to human-readable values like 1.44M """ +    from vyos.util import bytes_to_human +    return bytes_to_human(bytes, initial_exponent=initial_exponent, precision=precision) + +@register_filter('human_to_bytes') +def human_to_bytes(value): +    """ Convert a data amount with a unit suffix to bytes, like 2K to 2048 """ +    from vyos.util import human_to_bytes +    return human_to_bytes(value) +  @register_filter('ip_from_cidr')  def ip_from_cidr(prefix):      """ Take an IPv4/IPv6 CIDR host and strip cidr mask.  | 
