diff options
| author | Daniil Baturin <daniil@vyos.io> | 2023-07-06 11:49:27 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-06 11:49:27 +0100 | 
| commit | e8ff7aa564b03c6338b2c053f3c24a08fd2cf323 (patch) | |
| tree | a126ff01591f781509a75bf0ed908fd01638b574 | |
| parent | e47668d88a21f4077bfb88c1123de0c86679d868 (diff) | |
| parent | 7147c7c6a541f5544a081905ad6bf93bdf458da8 (diff) | |
| download | vyos-1x-e8ff7aa564b03c6338b2c053f3c24a08fd2cf323.tar.gz vyos-1x-e8ff7aa564b03c6338b2c053f3c24a08fd2cf323.zip | |
Merge pull request #2076 from jestabro/accel-dict
vyos.configdict: T5319: remove workarounds for incorrect defaults in get_accel_dict
| -rw-r--r-- | python/vyos/configdict.py | 78 | ||||
| -rw-r--r-- | python/vyos/xml_ref/definition.py | 4 | 
2 files changed, 8 insertions, 74 deletions
| diff --git a/python/vyos/configdict.py b/python/vyos/configdict.py index 9618ec93e..1205342df 100644 --- a/python/vyos/configdict.py +++ b/python/vyos/configdict.py @@ -595,40 +595,8 @@ def get_accel_dict(config, base, chap_secrets):      dict = config.get_config_dict(base, key_mangling=('-', '_'),                                    get_first_key=True, -                                  no_tag_node_value_mangle=True) - -    # We have gathered the dict representation of the CLI, but there are default -    # options which we need to update into the dictionary retrived. -    default_values = defaults(base) - -    # T2665: defaults include RADIUS server specifics per TAG node which need to -    # be added to individual RADIUS servers instead - so we can simply delete them -    if dict_search('authentication.radius.server', default_values): -        del default_values['authentication']['radius']['server'] - -    # T2665: defaults include static-ip address per TAG node which need to be -    # added to individual local users instead - so we can simply delete them -    if dict_search('authentication.local_users.username', default_values): -        del default_values['authentication']['local_users']['username'] - -    # T2665: defaults include IPv6 client-pool mask per TAG node which need to be -    # added to individual local users instead - so we can simply delete them -    if dict_search('client_ipv6_pool.prefix.mask', default_values): -        del default_values['client_ipv6_pool']['prefix']['mask'] -        # delete empty dicts -        if len (default_values['client_ipv6_pool']['prefix']) == 0: -            del default_values['client_ipv6_pool']['prefix'] -        if len (default_values['client_ipv6_pool']) == 0: -            del default_values['client_ipv6_pool'] - -    # T2665: IPoE only - it has an interface tag node -    # added to individual local users instead - so we can simply delete them -    if dict_search('authentication.interface', default_values): -        del default_values['authentication']['interface'] -    if dict_search('interface', default_values): -        del default_values['interface'] - -    dict = dict_merge(default_values, dict) +                                  no_tag_node_value_mangle=True, +                                  with_recursive_defaults=True)      # set CPUs cores to process requests      dict.update({'thread_count' : get_half_cpus()}) @@ -648,43 +616,9 @@ def get_accel_dict(config, base, chap_secrets):          dict.update({'name_server_ipv4' : ns_v4, 'name_server_ipv6' : ns_v6})          del dict['name_server'] -    # T2665: Add individual RADIUS server default values -    if dict_search('authentication.radius.server', dict): -        default_values = defaults(base + ['authentication', 'radius', 'server']) -        for server in dict_search('authentication.radius.server', dict): -            dict['authentication']['radius']['server'][server] = dict_merge( -                default_values, dict['authentication']['radius']['server'][server]) - -            # Check option "disable-accounting" per server and replace default value from '1813' to '0' -            # set vpn sstp authentication radius server x.x.x.x disable-accounting -            if 'disable_accounting' in dict['authentication']['radius']['server'][server]: -                dict['authentication']['radius']['server'][server]['acct_port'] = '0' - -    # T2665: Add individual local-user default values -    if dict_search('authentication.local_users.username', dict): -        default_values = defaults(base + ['authentication', 'local-users', 'username']) -        for username in dict_search('authentication.local_users.username', dict): -            dict['authentication']['local_users']['username'][username] = dict_merge( -                default_values, dict['authentication']['local_users']['username'][username]) - -    # T2665: Add individual IPv6 client-pool default mask if required -    if dict_search('client_ipv6_pool.prefix', dict): -        default_values = defaults(base + ['client-ipv6-pool', 'prefix']) -        for prefix in dict_search('client_ipv6_pool.prefix', dict): -            dict['client_ipv6_pool']['prefix'][prefix] = dict_merge( -                default_values, dict['client_ipv6_pool']['prefix'][prefix]) - -    # T2665: IPoE only - add individual local-user default values -    if dict_search('authentication.interface', dict): -        default_values = defaults(base + ['authentication', 'interface']) -        for interface in dict_search('authentication.interface', dict): -            dict['authentication']['interface'][interface] = dict_merge( -                default_values, dict['authentication']['interface'][interface]) - -    if dict_search('interface', dict): -        default_values = defaults(base + ['interface']) -        for interface in dict_search('interface', dict): -            dict['interface'][interface] = dict_merge(default_values, -                                                      dict['interface'][interface]) +    # Check option "disable-accounting" per server and replace default value from '1813' to '0' +    for server in (dict_search('authentication.radius.server', dict) or []): +        if 'disable_accounting' in dict['authentication']['radius']['server'][server]: +            dict['authentication']['radius']['server'][server]['acct_port'] = '0'      return dict diff --git a/python/vyos/xml_ref/definition.py b/python/vyos/xml_ref/definition.py index 7fd7a7b77..33a49ca69 100644 --- a/python/vyos/xml_ref/definition.py +++ b/python/vyos/xml_ref/definition.py @@ -147,8 +147,8 @@ class Xml:          default = self._get_default_value(node)          if default is None:              return None -        if self._is_multi_node(node) and not isinstance(default, list): -            return [default] +        if self._is_multi_node(node): +            return default.split()          return default      def get_defaults(self, path: list, get_first_key=False, recursive=False) -> dict: | 
