diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/configdict.py | 78 | ||||
| -rw-r--r-- | python/vyos/ifconfig/geneve.py | 1 | ||||
| -rw-r--r-- | python/vyos/qos/base.py | 12 | ||||
| -rw-r--r-- | python/vyos/xml_ref/definition.py | 4 | 
4 files changed, 16 insertions, 79 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/ifconfig/geneve.py b/python/vyos/ifconfig/geneve.py index 276c34cd7..7a05e47a7 100644 --- a/python/vyos/ifconfig/geneve.py +++ b/python/vyos/ifconfig/geneve.py @@ -45,6 +45,7 @@ class GeneveIf(Interface):              'parameters.ip.df'           : 'df',              'parameters.ip.tos'          : 'tos',              'parameters.ip.ttl'          : 'ttl', +            'parameters.ip.innerproto'   : 'innerprotoinherit',              'parameters.ipv6.flowlabel'  : 'flowlabel',          } diff --git a/python/vyos/qos/base.py b/python/vyos/qos/base.py index 717e3c214..3983b1bc0 100644 --- a/python/vyos/qos/base.py +++ b/python/vyos/qos/base.py @@ -331,13 +331,15 @@ class QoSBase:                  #     burst = cls_config['burst']                  #     filter_cmd += f' burst {burst}' +        if 'default' in config: +            default_cls_id = 1 +            if 'class' in config: +                class_id_max = self._get_class_max_id(config) +                default_cls_id = int(class_id_max) +1 +            self._build_base_qdisc(config['default'], default_cls_id) +          if self.qostype == 'limiter':              if 'default' in config: -                if 'class' in config: -                    class_id_max = self._get_class_max_id(config) -                    default_cls_id = int(class_id_max) + 1 -                    self._build_base_qdisc(config['default'], default_cls_id) -                  filter_cmd = f'tc filter replace dev {self._interface} parent {self._parent:x}: '                  filter_cmd += 'prio 255 protocol all basic' 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:  | 
