diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/conf_mode/protocols_bgp.py | 13 | ||||
| -rwxr-xr-x | src/conf_mode/service_dhcp-server.py | 8 | ||||
| -rwxr-xr-x | src/op_mode/generate_tech-support_archive.py | 2 | ||||
| -rw-r--r-- | src/services/api/graphql/generate/composite_function.py | 4 | ||||
| -rw-r--r-- | src/services/api/graphql/graphql/auth_token_mutation.py | 8 | ||||
| -rw-r--r-- | src/services/api/graphql/graphql/directives.py | 4 | ||||
| -rw-r--r-- | src/services/api/graphql/graphql/mutations.py | 8 | ||||
| -rw-r--r-- | src/services/api/graphql/graphql/queries.py | 8 | ||||
| -rw-r--r-- | src/services/api/graphql/libs/op_mode.py | 6 | ||||
| -rwxr-xr-x | src/services/api/graphql/session/composite/system_status.py | 11 | ||||
| -rw-r--r-- | src/services/api/graphql/session/session.py | 3 | 
11 files changed, 42 insertions, 33 deletions
| diff --git a/src/conf_mode/protocols_bgp.py b/src/conf_mode/protocols_bgp.py index 512fa26e9..2b16de775 100755 --- a/src/conf_mode/protocols_bgp.py +++ b/src/conf_mode/protocols_bgp.py @@ -285,6 +285,7 @@ def verify(bgp):              elif tmp != 'default':                  raise ConfigError(f'{error_msg} "{tmp}"!') +    peer_groups_context = dict()      # Common verification for both peer-group and neighbor statements      for neighbor in ['neighbor', 'peer_group']:          # bail out early if there is no neighbor or peer-group statement @@ -301,6 +302,18 @@ def verify(bgp):                      raise ConfigError(f'Specified peer-group "{peer_group}" for '\                                        f'neighbor "{neighbor}" does not exist!') +                if 'remote_as' in peer_config: +                    is_ibgp = True +                    if peer_config['remote_as'] != 'internal' and \ +                            peer_config['remote_as'] != bgp['system_as']: +                        is_ibgp = False + +                    if peer_group not in peer_groups_context: +                        peer_groups_context[peer_group] = is_ibgp +                    elif peer_groups_context[peer_group] != is_ibgp: +                        raise ConfigError(f'Peer-group members must be ' +                                          f'all internal or all external') +              if 'local_role' in peer_config:                  #Ensure Local Role has only one value.                  if len(peer_config['local_role']) > 1: diff --git a/src/conf_mode/service_dhcp-server.py b/src/conf_mode/service_dhcp-server.py index bf4454fda..f4fb78f57 100755 --- a/src/conf_mode/service_dhcp-server.py +++ b/src/conf_mode/service_dhcp-server.py @@ -143,8 +143,12 @@ def get_config(config=None):                          dhcp['shared_network_name'][network]['subnet'][subnet].update(                                  {'range' : new_range_dict}) -    if dict_search('high_availability.certificate', dhcp): -        dhcp['pki'] = conf.get_config_dict(['pki'], key_mangling=('-', '_'), get_first_key=True, no_tag_node_value_mangle=True) +    if len(dhcp['high_availability']) == 1: +        ## only default value for mode is set, need to remove ha node +        del dhcp['high_availability'] +    else: +        if dict_search('high_availability.certificate', dhcp): +            dhcp['pki'] = conf.get_config_dict(['pki'], key_mangling=('-', '_'), get_first_key=True, no_tag_node_value_mangle=True)      return dhcp diff --git a/src/op_mode/generate_tech-support_archive.py b/src/op_mode/generate_tech-support_archive.py index c490b0137..41b53cd15 100755 --- a/src/op_mode/generate_tech-support_archive.py +++ b/src/op_mode/generate_tech-support_archive.py @@ -120,7 +120,7 @@ if __name__ == '__main__':      # Temporary directory creation      tmp_dir_path = f'{tmp_path}/drops-debug_{time_now}'      tmp_dir: Path = Path(tmp_dir_path) -    tmp_dir.mkdir() +    tmp_dir.mkdir(parents=True)      report_file: Path = Path(f'{tmp_dir_path}/show_tech-support_report.txt')      report_file.touch() diff --git a/src/services/api/graphql/generate/composite_function.py b/src/services/api/graphql/generate/composite_function.py index bc9d80fbb..d6626fd1f 100644 --- a/src/services/api/graphql/generate/composite_function.py +++ b/src/services/api/graphql/generate/composite_function.py @@ -1,11 +1,7 @@  # typing information for composite functions: those that invoke several  # elementary requests, and return the result as a single dict -import typing -  def system_status():      pass  queries = {'system_status': system_status} -  mutations = {} - diff --git a/src/services/api/graphql/graphql/auth_token_mutation.py b/src/services/api/graphql/graphql/auth_token_mutation.py index 603a13758..a53fa4d60 100644 --- a/src/services/api/graphql/graphql/auth_token_mutation.py +++ b/src/services/api/graphql/graphql/auth_token_mutation.py @@ -1,4 +1,4 @@ -# Copyright 2022 VyOS maintainers and contributors <maintainers@vyos.io> +# Copyright 2022-2024 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 @@ -13,10 +13,10 @@  # You should have received a copy of the GNU Lesser General Public License  # along with this library.  If not, see <http://www.gnu.org/licenses/>. -import jwt  import datetime -from typing import Any, Dict -from ariadne import ObjectType, UnionType +from typing import Any +from typing import Dict +from ariadne import ObjectType  from graphql import GraphQLResolveInfo  from .. libs.token_auth import generate_token diff --git a/src/services/api/graphql/graphql/directives.py b/src/services/api/graphql/graphql/directives.py index a7919854a..3927aee58 100644 --- a/src/services/api/graphql/graphql/directives.py +++ b/src/services/api/graphql/graphql/directives.py @@ -1,4 +1,4 @@ -# Copyright 2021 VyOS maintainers and contributors <maintainers@vyos.io> +# Copyright 2021-2024 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 @@ -13,7 +13,7 @@  # You should have received a copy of the GNU Lesser General Public License  # along with this library.  If not, see <http://www.gnu.org/licenses/>. -from ariadne import SchemaDirectiveVisitor, ObjectType +from ariadne import SchemaDirectiveVisitor  from . queries import *  from . mutations import * diff --git a/src/services/api/graphql/graphql/mutations.py b/src/services/api/graphql/graphql/mutations.py index 8254e22b1..d115a8e94 100644 --- a/src/services/api/graphql/graphql/mutations.py +++ b/src/services/api/graphql/graphql/mutations.py @@ -1,4 +1,4 @@ -# Copyright 2021-2022 VyOS maintainers and contributors <maintainers@vyos.io> +# Copyright 2021-2024 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 @@ -14,11 +14,13 @@  # along with this library.  If not, see <http://www.gnu.org/licenses/>.  from importlib import import_module -from typing import Any, Dict, Optional  from ariadne import ObjectType, convert_camel_case_to_snake -from graphql import GraphQLResolveInfo  from makefun import with_signature +# used below by func_sig +from typing import Any, Dict, Optional # pylint: disable=W0611 +from graphql import GraphQLResolveInfo # pylint: disable=W0611 +  from .. import state  from .. libs import key_auth  from api.graphql.session.session import Session diff --git a/src/services/api/graphql/graphql/queries.py b/src/services/api/graphql/graphql/queries.py index daccc19b2..717098259 100644 --- a/src/services/api/graphql/graphql/queries.py +++ b/src/services/api/graphql/graphql/queries.py @@ -1,4 +1,4 @@ -# Copyright 2021-2022 VyOS maintainers and contributors <maintainers@vyos.io> +# Copyright 2021-2024 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 @@ -14,11 +14,13 @@  # along with this library.  If not, see <http://www.gnu.org/licenses/>.  from importlib import import_module -from typing import Any, Dict, Optional  from ariadne import ObjectType, convert_camel_case_to_snake -from graphql import GraphQLResolveInfo  from makefun import with_signature +# used below by func_sig +from typing import Any, Dict, Optional # pylint: disable=W0611 +from graphql import GraphQLResolveInfo # pylint: disable=W0611 +  from .. import state  from .. libs import key_auth  from api.graphql.session.session import Session diff --git a/src/services/api/graphql/libs/op_mode.py b/src/services/api/graphql/libs/op_mode.py index 5022f7d4e..86e38eae6 100644 --- a/src/services/api/graphql/libs/op_mode.py +++ b/src/services/api/graphql/libs/op_mode.py @@ -1,4 +1,4 @@ -# Copyright 2022 VyOS maintainers and contributors <maintainers@vyos.io> +# Copyright 2022-2024 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 @@ -16,7 +16,9 @@  import os  import re  import typing -from typing import Union, Tuple, Optional + +from typing import Union +from typing import Optional  from humps import decamelize  from vyos.defaults import directories diff --git a/src/services/api/graphql/session/composite/system_status.py b/src/services/api/graphql/session/composite/system_status.py index d809f32e3..516a4eff6 100755 --- a/src/services/api/graphql/session/composite/system_status.py +++ b/src/services/api/graphql/session/composite/system_status.py @@ -1,6 +1,6 @@  #!/usr/bin/env python3  # -# Copyright (C) 2022 VyOS maintainers and contributors +# Copyright (C) 2022-2024 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 @@ -13,15 +13,6 @@  #  # You should have received a copy of the GNU General Public License  # along with this program.  If not, see <http://www.gnu.org/licenses/>. -# -# - -import os -import sys -import json -import importlib.util - -from vyos.defaults import directories  from api.graphql.libs.op_mode import load_op_mode_as_module diff --git a/src/services/api/graphql/session/session.py b/src/services/api/graphql/session/session.py index 3c5a062b6..6ae44b9bf 100644 --- a/src/services/api/graphql/session/session.py +++ b/src/services/api/graphql/session/session.py @@ -1,4 +1,4 @@ -# Copyright 2021-2022 VyOS maintainers and contributors <maintainers@vyos.io> +# Copyright 2021-2024 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 @@ -21,7 +21,6 @@ from ariadne import convert_camel_case_to_snake  from vyos.config import Config  from vyos.configtree import ConfigTree  from vyos.defaults import directories -from vyos.template import render  from vyos.opmode import Error as OpModeError  from api.graphql.libs.op_mode import load_op_mode_as_module, split_compound_op_mode_name | 
