pre-commit: install_deps> python -I -m pip install pre-commit docs: install_deps> python -I -m pip install -r docs/requirements.txt docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt pre-commit: freeze> python -m pip freeze --all pre-commit: cfgv==3.4.0,distlib==0.4.0,filelock==3.20.0,identify==2.6.15,nodeenv==1.9.1,pip==25.3,platformdirs==4.5.0,pre_commit==4.4.0,PyYAML==6.0.3,setuptools==80.9.0,virtualenv==20.35.4 pre-commit: commands[0]> pre-commit run --all-files --show-diff-on-failure [WARNING] hook id `remove-tabs` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. [WARNING] repo `https://github.com/pre-commit/pre-commit-hooks` uses deprecated stage names (commit, push) which will be removed in a future version. Hint: often `pre-commit autoupdate --repo https://github.com/pre-commit/pre-commit-hooks` will fix this. if it does not -- consider reporting an issue to that repo. [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... trim trailing whitespace.................................................Failed - hook id: trailing-whitespace - exit code: 1 - files were modified by this hook Fixing tests/libraries/flowspec.py Fixing tests/libraries/pcep.py Fixing tests/libraries/infra.py Fixing tests/libraries/bgp.py Fixing tests/libraries/prefix_counting.py Fixing tests/suites/bgp_userfeatures/ibgp_peer_lsp.py Fixing tests/suites/bgp_userfeatures/test_010_bgp_functional_l3vpn.py Fixing tests/suites/bgp_userfeatures/bgp_policies_default.py Fixing tests/suites/bgp_userfeatures/test_ibgp_peers_basic.py Fixing tests/suites/bgp_userfeatures/bgp_ipv6_basic.py Fixing tests/suites/bgp_userfeatures/test_basic.py Fixing tests/suites/bgp_userfeatures/test_030_bgp_functional_evpn.py Fixing tests/suites/bgp_userfeatures/bgp_app_peer_basic.py Fixing tests/suites/bgp_userfeatures/test_080_bgp_functional_rt_constrain.py Fixing tests/suites/bgp_userfeatures/090_bgp_functional_rt_constrain_validation.py Fixing tests/suites/bgp_userfeatures/test_010_bgp_flowspec.py Fixing tests/suites/bgp_userfeatures/test_060_bgp_functional_mvpn.py Fixing tests/libraries/utils.py Fixing tests/suites/bgp_userfeatures/test_bgp_functional_md5.py Fixing tests/suites/bgp_userfeatures/test_bgp_llgr_basic.py Fixing tests/suites/bgp_userfeatures/test_050_bmp_basic.py Fixing tests/suites/bgp_userfeatures/070_bgp_functional_l3vpn_mcast.py Fixing tests/suites/bgp_userfeatures/040_bgp_functional_route_ref.py Fixing tests/suites/bgp_userfeatures/020_bgp_functional_multipath.py Fixing tests/suites/bgp_userfeatures/ebgp_peers_basic.py Fixing tests/conftest.py Tabs remover.............................................................Failed - hook id: remove-tabs - exit code: 1 - files were modified by this hook Substituting tabs in: tests/suites/bgp_userfeatures/test_080_bgp_functional_rt_constrain.py by 4 whitespaces Substituting tabs in: tests/suites/bgp_userfeatures/test_030_bgp_functional_evpn.py by 4 whitespaces Tabs have been successfully removed. Now aborting the commit. You can check the changes made. Then simply "git add --update ." and re-commit Substituting tabs in: tests/suites/bgp_userfeatures/test_010_bgp_functional_l3vpn.py by 4 whitespaces Tabs have been successfully removed. Now aborting the commit. You can check the changes made. Then simply "git add --update ." and re-commit Substituting tabs in: tests/suites/bgp_userfeatures/test_060_bgp_functional_mvpn.py by 4 whitespaces Tabs have been successfully removed. Now aborting the commit. You can check the changes made. Then simply "git add --update ." and re-commit Substituting tabs in: tests/suites/bgp_userfeatures/070_bgp_functional_l3vpn_mcast.py by 4 whitespaces Tabs have been successfully removed. Now aborting the commit. You can check the changes made. Then simply "git add --update ." and re-commit pre-commit hook(s) made changes. If you are seeing this message in CI, reproduce locally with: `pre-commit run --all-files`. To run `pre-commit` as part of git workflow, use `pre-commit install`. All changes made by hooks: diff --git a/tests/conftest.py b/tests/conftest.py index 58a2ac1ec9..1bc6c89c24 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -111,14 +111,14 @@ def step_tag_checker(request: pytest.FixtureRequest) -> Callable[[Optional[List[ """ Returns a function that checks if a step should run based on tags. Reads --step-include and --step-exclude command-line options. - + Logic mimics Robot Framework: 1. If --step-include is used, the step *must* match one tag. 2. If --step-exclude is used, the step *must not* match any tag. """ include_str = request.config.getoption("--step-include") exclude_str = request.config.getoption("--step-exclude") - + include_tags = set(include_str.split(',')) if include_str else set() exclude_tags = set(exclude_str.split(',')) if exclude_str else set() diff --git a/tests/libraries/bgp.py b/tests/libraries/bgp.py index b24f83a8e1..69f92d6d6c 100644 --- a/tests/libraries/bgp.py +++ b/tests/libraries/bgp.py @@ -304,7 +304,7 @@ def start_bgp_speaker( allf: bool | None = None, evpn: bool | None = None, mvpn: bool | None = None, - l3vpn_mcast: bool | None = None, + l3vpn_mcast: bool | None = None, rt_constrain: bool | None = None, wfr: int | None = None, cluster: str | None = None, @@ -508,7 +508,7 @@ def start_bgp_app_peer( log_file: str = "bgp_app_peer.log", timeout: int = 1200, ) -> tuple[int, str]: - """??? NOt necessary always to have these parames and if not provided skip them + """??? NOt necessary always to have these parames and if not provided skip them and not provide to the scrpt count, prefix: str = "8.0.0.0", prefix_len: int = 28,""" """Starts bgp_app_peer.py for manipulating BGP neighbour rib table. @@ -570,7 +570,7 @@ def start_exabgp( if log_file: command += f" > tmp/{log_file}" - + process = infra.shell(command, run_in_background=True) return process @@ -630,7 +630,7 @@ def start_gobgp( """??? """ command = f"{gobgp_path} -l debug -f {cfg_file} > tmp/gobgp.log" - + process = infra.shell(command, run_in_background=True) return process diff --git a/tests/libraries/flowspec.py b/tests/libraries/flowspec.py index 1b19d59141..5c0256836b 100644 --- a/tests/libraries/flowspec.py +++ b/tests/libraries/flowspec.py @@ -17,7 +17,7 @@ RESTCONF_PORT = variables.RESTCONF_PORT TOOLS_IP = variables.TOOLS_IP log = logging.getLogger(__name__) - + def verify_flowspec_data_is_empty(): templated_requests.get_templated_request("variables/bgpflowspec/empty_route", None, verify=True) diff --git a/tests/libraries/infra.py b/tests/libraries/infra.py index 1611298598..08a3ab1a4c 100644 --- a/tests/libraries/infra.py +++ b/tests/libraries/infra.py @@ -97,7 +97,7 @@ def shell( except FileNotFoundError: log.error(f"ERROR command not found: {exec_command}") return None, None - + def read_until(process: subprocess.Popen, expected_text: str, timeout: int = 10): "This exepcted text must be within one line, it can not spread across mutliple lines" found_event = threading.Event() @@ -111,7 +111,7 @@ def read_until(process: subprocess.Popen, expected_text: str, timeout: int = 10) if line and expected_text in line: found_event.set() return - + queue = Queue() thread = threading.Thread(target=threaded_read, args=(process.stdout, expected_text, queue), daemon=True) thread.start() @@ -451,7 +451,7 @@ def stop_process_by_pid(pid: int, gracefully: bool = True, timeout: int | None = log.info(f"Sending signal {signal_to_be_sent} to process with PID {pid}") process = psutil.Process(pid) process.send_signal(signal_to_be_sent) - + if timeout is not None: # check if it is still running try: @@ -462,7 +462,7 @@ def stop_process_by_pid(pid: int, gracefully: bool = True, timeout: int | None = raise AssertionError( f"Was not able to stop process with PID {process.pid}, it is still running." ) from e - + def download_file(url: str): file_name = url.split("/")[-1] urllib.request.urlretrieve(url, f"tmp/{file_name}") @@ -470,7 +470,7 @@ def download_file(url: str): def get_file_content(path: str): with open(path, "r", encoding="utf-8") as file: content = file.read() - + return content diff --git a/tests/libraries/pcep.py b/tests/libraries/pcep.py index 86f4fd3559..36bcc324fc 100644 --- a/tests/libraries/pcep.py +++ b/tests/libraries/pcep.py @@ -100,7 +100,7 @@ def configure_speaker_entitiy_identifier(): resposne = templated_requests.put_templated_request( "variables/pcepuser/titanium/node_speaker_entity_identifier", mapping, json=False ) - + return resposne def add_lsp(pcc_ip: str, lsp_name: str): @@ -119,7 +119,7 @@ def update_lsp(pcc_ip: str, lsp_name: str): #resposne = templated_requests.post_templated_request( # "data/templates/pcep_update_lsp", mapping, json=False #) - # + # #return resposne response = operate_xml_lsp_return_json("network-topology-pcep:update-lsp", VARIABLES["update_instantiated_xml"]) return response diff --git a/tests/libraries/prefix_counting.py b/tests/libraries/prefix_counting.py index 17afae2c6e..64fa4a2865 100644 --- a/tests/libraries/prefix_counting.py +++ b/tests/libraries/prefix_counting.py @@ -144,7 +144,7 @@ def wait_for_ipv4_topology_prefixes_to_become_stable( raise AssertionError( f"Expected Ipv4 topology to be stable after {timeout} seconds" ) - + def verify_ip_topology_is_empty(): templated_requests.get_templated_request("variables/bgpuser/empty_topology", None, verify=True) diff --git a/tests/libraries/utils.py b/tests/libraries/utils.py index 66417ed87e..7521490f4a 100644 --- a/tests/libraries/utils.py +++ b/tests/libraries/utils.py @@ -35,7 +35,7 @@ def verify_jsons_matach(json1: str, json2: str, json1_data_label: str = "json1", if len(visual_diff) > 2000: visual_diff = visual_diff[:2000] + " ... (truncated long output)" raise AssertionError(f": \n{visual_diff}") - + def verify_multiline_text_match(expected_text: str, real_text: str): @@ -155,7 +155,7 @@ def wait_until_function_returns_value_with_custom_value_validator( f"Failed to execute {function.__name__}({','.join([str(arg) for arg in args])} {kwargs or ''}) " \ f"after {retry_count} attempts." ) from last_exception - + def verify_function_never_passes_within_timeout( retry_count: int, interval: int, function: Callable, *args, **kwargs ) -> Any: @@ -172,7 +172,7 @@ def verify_function_never_passes_within_timeout( else: raise AssertionError("Function did pass within timeout") - + def verify_process_did_not_stop_immediately( pid: int, retry_count: int = 10, interval: int = 1 ): @@ -191,7 +191,7 @@ def verify_process_did_not_stop_immediately( verify_function_returns_concrete_value_for_some_time( retry_count, interval, True, infra.is_process_still_running, pid ) - + def verify_function_does_not_fail_within_timeout( retry_count: int, interval: int, function: Callable, *args, **kwargs ) -> Any: diff --git a/tests/suites/bgp_userfeatures/020_bgp_functional_multipath.py b/tests/suites/bgp_userfeatures/020_bgp_functional_multipath.py index 65c9b971d1..3f286f8a79 100644 --- a/tests/suites/bgp_userfeatures/020_bgp_functional_multipath.py +++ b/tests/suites/bgp_userfeatures/020_bgp_functional_multipath.py @@ -10,7 +10,7 @@ # BGP peer as follows: # # Functional test suite for bgp - n-path and all-path selection -# +# # This suite tests n-path and all-path selection policy. # It uses odl and exabgp as bgp peers. Routes advertized from # odl are configured via application peer. @@ -146,9 +146,9 @@ class TestBgpfunctionalMultipath: templated_requests.delete_templated_request(f"{MULT_VAR_FOLDER}/route", route_mapping) mapping = {"IP": TOOLS_IP, "BGP_RIB_OPENCONFIG": PROTOCOL_OPENCONFIG} templated_requests.delete_templated_request(f"{BGP_VAR_FOLDER}/app_peer", mapping) - + def test_bgp_functional_multipath(self, allure_step_with_separate_logging): - + with allure_step_with_separate_logging("step_test_suite_setup"): self.setup_config_files() self.store_rib_configuration() diff --git a/tests/suites/bgp_userfeatures/040_bgp_functional_route_ref.py b/tests/suites/bgp_userfeatures/040_bgp_functional_route_ref.py index e5e842aefc..478420508e 100644 --- a/tests/suites/bgp_userfeatures/040_bgp_functional_route_ref.py +++ b/tests/suites/bgp_userfeatures/040_bgp_functional_route_ref.py @@ -10,7 +10,7 @@ # BGP peer as follows: # # Functional test for bgp - route refresh -# +# # This suite tests sending and receiveing route refresh message. # It uses odl and exabgp as bgp peers. Sending route refresh message # from odl is initiated via restconf. If route refresh is received by odl, @@ -92,7 +92,7 @@ class TestBgpfunctionalRouteRef: log.info(f"Expected state: {exp_state}") line_count = exp_state.find("\n") + 1 real_state = "\n".join(stdout.splitlines()[MSG_STATE_OFFSET:MSG_STATE_OFFSET+line_count]) - utils.verify_multiline_text_match(exp_state, real_state) + utils.verify_multiline_text_match(exp_state, real_state) def verify_odl_operational_state_count(self, notification_count: int, update_count: int, receive_count: int): """Check notification and update count gained from operatial neighbor state @@ -114,9 +114,9 @@ class TestBgpfunctionalRouteRef: bgp.stop_bgp_speaker(self.exabgp_process) mapping = {"PREFIX": prefix, "APP_RIB": ODL_IP} templated_requests.delete_templated_request(f"{BGP_RR_VAR_FOLDER}/route", mapping) - + def test_bgp_functional_route_ref(self, allure_step_with_separate_logging): - + with allure_step_with_separate_logging("step_test_suite_setup"): self.setup_config_files() diff --git a/tests/suites/bgp_userfeatures/070_bgp_functional_l3vpn_mcast.py b/tests/suites/bgp_userfeatures/070_bgp_functional_l3vpn_mcast.py index 3a55572a03..a0623b2be2 100644 --- a/tests/suites/bgp_userfeatures/070_bgp_functional_l3vpn_mcast.py +++ b/tests/suites/bgp_userfeatures/070_bgp_functional_l3vpn_mcast.py @@ -10,7 +10,7 @@ # BGP peer as follows: # # Functional test suite for bgp - l3vpn-mutlicast -# +# # This suite tests advertising l3vpn_mcast routes to odl. For advertising # play.py is used, and particular files are stored as *.hex files.There are # L3vpn-ipv4-multicast routes and L3vpn-ipv6-multicast routes tested. @@ -91,7 +91,7 @@ class TestBgpfunctionalL3vpnMcast: templated_requests.delete_templated_request( f"{L3VPN_MCAST_DIR}/bgp_peer", mapping ) - + def test_bgp_functional_l3vpn_mcast(self, allure_step_with_separate_logging): with allure_step_with_separate_logging("step_configure_app_peer"): """Configures bgp application peer.""" @@ -132,5 +132,5 @@ class TestBgpfunctionalL3vpnMcast: self.delete_bgp_peer_configuration() with allure_step_with_separate_logging("step_deconfigure_app_peer"): - """ Revert the BGP configuration to the original state: without application peer""" + """ Revert the BGP configuration to the original state: without application peer""" self.delete_app_peer() diff --git a/tests/suites/bgp_userfeatures/090_bgp_functional_rt_constrain_validation.py b/tests/suites/bgp_userfeatures/090_bgp_functional_rt_constrain_validation.py index 705803fa2a..974110b2be 100644 --- a/tests/suites/bgp_userfeatures/090_bgp_functional_rt_constrain_validation.py +++ b/tests/suites/bgp_userfeatures/090_bgp_functional_rt_constrain_validation.py @@ -7,7 +7,7 @@ # # Functional test for bgp - route-target-constrain safi # -# This suite tests advertising rt-constrain routes to odl. For advertising +# This suite tests advertising rt-constrain routes to odl. For advertising # from peer play.py is used, sending hex messages to odl. # There are 3 peers: ebgp and two ibgps. First peer sends l3vpn route with # specific RT to odl, second peer sends RT route and third peer only @@ -105,7 +105,7 @@ class TestBgpfunctionalRtConstrainValidation: def verify_empty_reproted_data(self): """Verify empty data response""" templated_requests.get_templated_request(f"{RT_CONSTRAIN_DIR}/empty_l3vpn", mapping=ADJ_RIB_OUT, verify=True) - + def test_bgp_functional_rt_constrain_validation(self, allure_step_with_separate_logging): with allure_step_with_separate_logging("step_reconfigure_odl_to_accept_connection"): """Configures BGP peer module with initiate-connection set to false.""" @@ -121,7 +121,7 @@ class TestBgpfunctionalRtConstrainValidation: templated_requests.put_templated_request( EBGP_DIR, mapping, json=False ) - + with allure_step_with_separate_logging("step_start_bgp_peers"): """Start Python speaker to connect to ODL. We give each speaker time until odl really starts to accept incoming bgp connection. The failure happens if the incoming connection comes too quickly after configuring the peer.""" diff --git a/tests/suites/bgp_userfeatures/bgp_app_peer_basic.py b/tests/suites/bgp_userfeatures/bgp_app_peer_basic.py index 71de5a61a1..8e3e9d5143 100644 --- a/tests/suites/bgp_userfeatures/bgp_app_peer_basic.py +++ b/tests/suites/bgp_userfeatures/bgp_app_peer_basic.py @@ -184,7 +184,7 @@ class TestBgpAppPeerBasic: with allure_step_with_separate_logging("step_tc3_reconnect_bgp_peer_and_check_incomming_updates_for_3_introduced_prefixes"): """Start BGP peer tool.""" self.bgp_speaker_process = bgp.start_bgp_speaker(0, my_ip=TOOLS_IP, log_level="debug") - + utils.verify_process_did_not_stop_immediately(self.bgp_speaker_process.pid) infra.wait_for_string_in_file(20, 1, "nlri_prefix_received:", "bgp_peer.log", threshold=3) infra.verify_string_occurence_count_in_file("nlri_prefix_received:", "bgp_peer.log", 3) diff --git a/tests/suites/bgp_userfeatures/bgp_ipv6_basic.py b/tests/suites/bgp_userfeatures/bgp_ipv6_basic.py index 6bb2e9634d..56b51cc2d8 100644 --- a/tests/suites/bgp_userfeatures/bgp_ipv6_basic.py +++ b/tests/suites/bgp_userfeatures/bgp_ipv6_basic.py @@ -174,7 +174,7 @@ class TestBgpIpv6Basic: """Save exabgp logs as exaipv6.log, and stop exabgp with ctrl-c bash signal.""" infra.shell(f"cp tmp/{EXABGP_LOG} results/") bgp.stop_exabgp(self.exabgp_process) - + with allure_step_with_separate_logging("step_configure_app_peer"): """Configures bgp application peer.""" mapping = {"IP": "127.0.0.12", "BGP_RIB_OPENCONFIG": "example-bgp-rib"} diff --git a/tests/suites/bgp_userfeatures/bgp_policies_default.py b/tests/suites/bgp_userfeatures/bgp_policies_default.py index f18ec90ef2..eb392fbdbf 100644 --- a/tests/suites/bgp_userfeatures/bgp_policies_default.py +++ b/tests/suites/bgp_userfeatures/bgp_policies_default.py @@ -91,20 +91,20 @@ class TestBgpPoliciesDefault: mapping = {"IP": ODL_IP,"BGP_RIB_OPENCONFIG": "example-bgp-rib"} templated_requests.post_templated_request(f"{POLICIES_VAR}/app_peer", mapping, json=False) templated_requests.post_templated_request(f"{POLICIES_VAR}/app_peer_route", mapping, json=False) - + with allure_step_with_separate_logging("step_reconfigure_odl_to_accept_connections"): """Configure BGP peer modules with initiate-connection set to false. Configures 6 different peers, two internal, two external and two route-reflectors.""" for index, peer_type in enumerate(PEER_TYPES): mapping = {"IP": f"127.0.0.{index+2}", "BGP_RIB_OPENCONFIG": RIB_INSTANCE, "RIB_INSTACE_NAME": RIB_INSTANCE, "HOLDTIME": HOLDTIME, "PASSIVE_MODE": "true"} templated_requests.put_templated_request(f"{POLICIES_VAR}/{peer_type}", mapping, json=False) - + with allure_step_with_separate_logging("step_start_exabgps"): """Start 6 exabgps as processes in background, each with it's own configuration.""" for index in range(1, 7): exabgp_process = bgp.start_exabgp(f"tmp/exabgp{index}.cfg", log_file=f"exa{index}.log") self.exabgp_processes.append(exabgp_process) - + with allure_step_with_separate_logging("step_verify_rib_filled"): """Verifies that sent routes are present in particular ribs.""" self.verify_rib_status() @@ -120,7 +120,7 @@ class TestBgpPoliciesDefault: for index, peer_type in enumerate(PEER_TYPES): mapping = {"IP": f"127.0.0.{index+2}", "BGP_RIB_OPENCONFIG": RIB_INSTANCE, "RIB_INSTACE_NAME": RIB_INSTANCE} templated_requests.delete_templated_request(f"{POLICIES_VAR}/{peer_type}", mapping) - + with allure_step_with_separate_logging("step_deconfigure_app_peer"): """Revert the BGP configuration to the original state: without application peer.""" mapping = {"IP": ODL_IP,"BGP_RIB_OPENCONFIG": "example-bgp-rib"} diff --git a/tests/suites/bgp_userfeatures/ebgp_peers_basic.py b/tests/suites/bgp_userfeatures/ebgp_peers_basic.py index 85bc36fc4a..59695a06cb 100644 --- a/tests/suites/bgp_userfeatures/ebgp_peers_basic.py +++ b/tests/suites/bgp_userfeatures/ebgp_peers_basic.py @@ -103,7 +103,7 @@ class TestEbgpPeersBasic: infra.execute_karaf_command(f"log:set {ODL_LOG_LEVEL}") infra.execute_karaf_command(f"log:set ${ODL_BGP_LOG_LEVEL} org.opendaylight.bgpcep") infra.execute_karaf_command(f"log:set ${ODL_BGP_LOG_LEVEL} org.opendaylight.protocol") - + with allure_step_with_separate_logging("step_tc1_configure_two_ibgp_route_reflector_client_peers"): """Configure two iBGP peers as routing reflector clients.""" self.configure_ibgp_peer(BGP_PEER1_IP, rr_client=True, cluster_id=False) @@ -265,7 +265,7 @@ class TestEbgpPeersBasic: in second peer which has local route-reflector-cluster-id.""" mapping = {"IP": BGP_PEER2_IP, "BGP_RIB_OPENCONFIG": "example-bgp-rib", "PEER_NUMBER": 1, "CLUSTER_ID": BGP_PEER1_IP, "DEFAULT_ID": "127.0.0.4"} utils.wait_until_function_pass(10, 1, templated_requests.get_templated_request, f"{BGP_DATA_FOLDER}/cluster_id/peer_rib_out", mapping, verify=True) - + with allure_step_with_separate_logging("step_tc4_disconnect_bgp_peers"): """Stop BGP peer & store logs.""" bgp.stop_bgp_speaker(self.bgp_peer1_process) diff --git a/tests/suites/bgp_userfeatures/ibgp_peer_lsp.py b/tests/suites/bgp_userfeatures/ibgp_peer_lsp.py index e015336939..6797fa129d 100644 --- a/tests/suites/bgp_userfeatures/ibgp_peer_lsp.py +++ b/tests/suites/bgp_userfeatures/ibgp_peer_lsp.py @@ -9,7 +9,7 @@ # peer operations and checks for IP4 topology updates and updates towards # BGP peer as follows: # -# +# # Basic tests for iBGP peers. # Test suite performs basic iBGP functional test case for carrying LSP State # Information in BGP as described in diff --git a/tests/suites/bgp_userfeatures/test_010_bgp_flowspec.py b/tests/suites/bgp_userfeatures/test_010_bgp_flowspec.py index 0bf058c3fe..c29e52ea6e 100644 --- a/tests/suites/bgp_userfeatures/test_010_bgp_flowspec.py +++ b/tests/suites/bgp_userfeatures/test_010_bgp_flowspec.py @@ -38,7 +38,7 @@ log = logging.getLogger(__name__) @pytest.mark.usefixtures("teardown_kill_all_running_play_script_processes") @pytest.mark.run(order=15) class TestBgpFlowspec: - + def set_bgp_peer_configuration(self): """??? """ @@ -96,5 +96,5 @@ class TestBgpFlowspec: """Deconfigure BGP peer.""" self.delete_bgp_peer_configuration() - + diff --git a/tests/suites/bgp_userfeatures/test_010_bgp_functional_l3vpn.py b/tests/suites/bgp_userfeatures/test_010_bgp_functional_l3vpn.py index d2613f2123..030b5619c1 100644 --- a/tests/suites/bgp_userfeatures/test_010_bgp_functional_l3vpn.py +++ b/tests/suites/bgp_userfeatures/test_010_bgp_functional_l3vpn.py @@ -10,12 +10,12 @@ # BGP peer as follows: # # Functional test suite for bgp - l3vpn-ipv4 -# +# # This suite tests advertising and receiveing routes with l3vpn content. It -# uses odl and exabgp as bgp peers. Routes advertized from odl are configured +# uses odl and exabgp as bgp peers. Routes advertized from odl are configured # via application peer. Routes advertised from exabgp is statically configured # in exabgp config file. -# For fluorine and further, instead of exabgp, play.py is used. When sending +# For fluorine and further, instead of exabgp, play.py is used. When sending # routes from odl to peer, first route containg route-target argument # have to be send from peer to odl, so odl can identify this peer. Than it # sends l3vpn route containg this argument to odl app peer, and we check @@ -71,7 +71,7 @@ class TestBgpfunctionalL3Vpn: templated_requests.delete_templated_request( f"{RT_CONSTRAIN_DIR}/bgp_peer", mapping ) - + def verify_reported_data(self, tempalate_path): """Verifies expected response""" templated_requests.get_templated_request(tempalate_path, None, verify=True) @@ -88,12 +88,12 @@ class TestBgpfunctionalL3Vpn: infra.shell("cp variables/bgpfunctional/l3vpn_ipv4/bgp-l3vpn-ipv4.cfg tmp/") infra.shell(f"sed -i -e 's/EXABGPIP/{TOOLS_IP}/g' tmp/bgp-l3vpn-ipv4.cfg") infra.shell(f"sed -i -e 's/ODLIP/{ODL_IP}/g' tmp/bgp-l3vpn-ipv4.cfg") - + def test_bgp_functional_l3vpn(self, allure_step_with_separate_logging): with allure_step_with_separate_logging("step_prepare_config_files"): """???.""" self.prepare_config_files() - + with allure_step_with_separate_logging("step_configure_app_peer"): """Configures bgp application peer. Openconfig is used for carbon and above.""" bgp.set_bgp_application_peer(ip=ODL_IP) @@ -140,5 +140,5 @@ class TestBgpfunctionalL3Vpn: self.delete_bgp_peer_configuration() with allure_step_with_separate_logging("step_deconfigure_app_peer"): - """ Revert the BGP configuration to the original state: without application peer""" + """ Revert the BGP configuration to the original state: without application peer""" bgp.delete_bgp_application_peer(ip=ODL_IP) diff --git a/tests/suites/bgp_userfeatures/test_030_bgp_functional_evpn.py b/tests/suites/bgp_userfeatures/test_030_bgp_functional_evpn.py index 1a4c6065eb..7a2644415c 100644 --- a/tests/suites/bgp_userfeatures/test_030_bgp_functional_evpn.py +++ b/tests/suites/bgp_userfeatures/test_030_bgp_functional_evpn.py @@ -10,7 +10,7 @@ # BGP peer as follows: # # Functional test suite for bgp - evpn -# +# # This suite tests advertising and receiveing routes with evpn content. # It uses play.py and odl as bgp peers. Routes advertized from odl are # configured via application peer. Routes advertised from play.py are stored @@ -162,7 +162,7 @@ class TestBgpfunctionalEvpn: finally: self.withdraw_route_and_verify(withdraw_hex) - + def verify_reported_data(self, tempalate_path): """Verifies expected response""" templated_requests.get_templated_request(tempalate_path, None, verify=True) @@ -170,7 +170,7 @@ class TestBgpfunctionalEvpn: def wait_until_expected_data(self, template_path, retry_count=20, interval=1): utils.wait_until_function_pass(retry_count, interval, self.verify_reported_data, template_path) - + def test_bgp_functional_evpn(self, allure_step_with_separate_logging): with allure_step_with_separate_logging("step_configure_app_peer"): """Configures bgp application peer. Openconfig is used for carbon and above.""" @@ -415,5 +415,5 @@ class TestBgpfunctionalEvpn: self.delete_bgp_peer_configuration() with allure_step_with_separate_logging("step_deconfigure_app_peer"): - """ Revert the BGP configuration to the original state: without application peer""" + """ Revert the BGP configuration to the original state: without application peer""" self.delete_app_peer() diff --git a/tests/suites/bgp_userfeatures/test_050_bmp_basic.py b/tests/suites/bgp_userfeatures/test_050_bmp_basic.py index 89804cf9e8..8af60bf033 100644 --- a/tests/suites/bgp_userfeatures/test_050_bmp_basic.py +++ b/tests/suites/bgp_userfeatures/test_050_bmp_basic.py @@ -7,7 +7,7 @@ # # # This is a basic test for bgp monitoring protocol feature. After the feature -# odl-bgpcep-bmp installation, the port 12345 should be bound for listening. +# odl-bgpcep-bmp installation, the port 12345 should be bound for listening. # To test this feature bgp-bmp-mock tool is used. It is a part of the bgpcep project. # It is a java tool which simulates more peers and more routers. In this particular # test suite it simulates 1 peer with 1 router, which means it advertizes one peer diff --git a/tests/suites/bgp_userfeatures/test_060_bgp_functional_mvpn.py b/tests/suites/bgp_userfeatures/test_060_bgp_functional_mvpn.py index f357beae19..433f657a88 100644 --- a/tests/suites/bgp_userfeatures/test_060_bgp_functional_mvpn.py +++ b/tests/suites/bgp_userfeatures/test_060_bgp_functional_mvpn.py @@ -10,7 +10,7 @@ # BGP peer as follows: # # Functional test suite for bgp - mvpn -# +# # This suite tests advertising mvpn routes to odl. For advertising play.py # is used, and particular files are stored as *.hex files. There are # 7 different types of routes used for auto-discovery of multicast network. @@ -91,7 +91,7 @@ class TestBgpfunctionalMvpn: templated_requests.delete_templated_request( f"{MVPN_DIR}/bgp_peer", mapping ) - + def test_bgp_functional_Mvpn(self, allure_step_with_separate_logging): with allure_step_with_separate_logging("step_configure_app_peer"): """Configures bgp application peer.""" @@ -189,5 +189,5 @@ class TestBgpfunctionalMvpn: self.delete_bgp_peer_configuration() with allure_step_with_separate_logging("step_deconfigure_app_peer"): - """ Revert the BGP configuration to the original state: without application peer""" + """ Revert the BGP configuration to the original state: without application peer""" self.delete_app_peer() diff --git a/tests/suites/bgp_userfeatures/test_080_bgp_functional_rt_constrain.py b/tests/suites/bgp_userfeatures/test_080_bgp_functional_rt_constrain.py index f344a6eff4..ab2442d9e1 100644 --- a/tests/suites/bgp_userfeatures/test_080_bgp_functional_rt_constrain.py +++ b/tests/suites/bgp_userfeatures/test_080_bgp_functional_rt_constrain.py @@ -10,7 +10,7 @@ # BGP peer as follows: # # Functional test suite for bgp - route-target-constrain safi -# +# # This suite tests advertising rt-constrain routes to odl. For advertising # from peer, play.py is used, sending hex messages to odl. For advertising # to app-peer, we are sending post requests with routes in xml. @@ -91,7 +91,7 @@ class TestBgpfunctionalRtConstrain: templated_requests.delete_templated_request( f"{RT_CONSTRAIN_DIR}/bgp_peer", mapping ) - + def test_bgp_functional_rt_constrain(self, allure_step_with_separate_logging): with allure_step_with_separate_logging("step_configure_app_peer"): """Configures bgp application peer.""" @@ -144,5 +144,5 @@ class TestBgpfunctionalRtConstrain: self.delete_bgp_peer_configuration() with allure_step_with_separate_logging("step_deconfigure_app_peer"): - """ Revert the BGP configuration to the original state: without application peer""" + """ Revert the BGP configuration to the original state: without application peer""" self.delete_app_peer() diff --git a/tests/suites/bgp_userfeatures/test_basic.py b/tests/suites/bgp_userfeatures/test_basic.py index 203819db24..2326307bc4 100644 --- a/tests/suites/bgp_userfeatures/test_basic.py +++ b/tests/suites/bgp_userfeatures/test_basic.py @@ -36,7 +36,7 @@ # - check empty topology # - reconfigre neighbor without peer-group, delete peer-group # -# Brief description how to perform BGP functional test: +# Brief description how to perform BGP functional test: # https://wiki.opendaylight.org/view/BGP_LS_PCEP:Lithium_Feature_Tests#How_to_test_2 import json @@ -238,7 +238,7 @@ class TestBasic: with allure_step_with_separate_logging("step_check_listening_connection_is_established"): """See TCP (BGP) connection in established state.""" - self.check_speaker_is_connected() + self.check_speaker_is_connected() with allure_step_with_separate_logging("step_check_listening_topology_is_filled"): """See new routes in example-ipv4-topology as a proof that synchronization was correct.""" diff --git a/tests/suites/bgp_userfeatures/test_bgp_functional_md5.py b/tests/suites/bgp_userfeatures/test_bgp_functional_md5.py index 6f1ea5c0b9..cdd4f7b47e 100644 --- a/tests/suites/bgp_userfeatures/test_bgp_functional_md5.py +++ b/tests/suites/bgp_userfeatures/test_bgp_functional_md5.py @@ -47,7 +47,7 @@ class TestBgpFunctionalMd5: def reconfigure_odl_to_accept_connections(self, password: str): mapping = {"BGP_RIB_OPENCONFIG": "example-bgp-rib", "IP": TOOLS_IP, - "HOLDTIME": 180, + "HOLDTIME": 180, "PEER_PORT": 17900, "PASSWORD": password, "PASSIVE_MODE": "true"} @@ -87,6 +87,6 @@ class TestBgpFunctionalMd5: exabgp_process = bgp.start_exabgp_and_verify_connected("tmp/exa-md5.cfg", ODL_IP, expect_connected=False) bgp.stop_exabgp(exabgp_process) self.delete_bgp_peer_configuration() - - + + diff --git a/tests/suites/bgp_userfeatures/test_bgp_llgr_basic.py b/tests/suites/bgp_userfeatures/test_bgp_llgr_basic.py index 50af9f177b..c8b3a27db3 100644 --- a/tests/suites/bgp_userfeatures/test_bgp_llgr_basic.py +++ b/tests/suites/bgp_userfeatures/test_bgp_llgr_basic.py @@ -5,7 +5,7 @@ # terms of the Eclipse Public License v1.0 which accompanies this distribution, # and is available at http://www.eclipse.org/legal/epl-v10.html # -# This suite tests simple connection between one ibgp peer (goabgp) and Odl. +# This suite tests simple connection between one ibgp peer (goabgp) and Odl. # Peer is configured with ipv6, and gobgp connectes to odl via ipv6. import json @@ -42,11 +42,11 @@ class TestBgpLlgrBasic: def reconfigure_odl_to_accept_connections(self): mapping = {"BGP_RIB_OPENCONFIG": "example-bgp-rib", "IP": TOOLS_IP, - "HOLDTIME": 180, + "HOLDTIME": 180, "PEER_PORT": 17900, "PASSIVE_MODE": "true"} templated_requests.put_templated_request("variables/bgpfunctional/ipv6/bgp_peer", mapping, json=False) - + def delete_bgp_peer_configuration(self): mapping = {"BGP_RIB_OPENCONFIG": "example-bgp-rib", "IP":TOOLS_IP } templated_requests.delete_templated_request("variables/bgpfunctional/ipv6/bgp_peer", mapping) @@ -72,7 +72,7 @@ class TestBgpLlgrBasic: with allure_step_with_separate_logging("step_reconfigure_odl_to_accept_connections"): """Configure BGP peer modules with initiate-connection set to false with short ipv6 address.""" self.reconfigure_odl_to_accept_connections() - + with allure_step_with_separate_logging("step_start_gobgp"): """Starts gobgp peer simulator.""" self.gobgp_process = bgp.start_gobgp_and_verify_connected(f"tmp/gobgpd", f"tmp/{GOBGP_CFG}", TOOLS_IP) diff --git a/tests/suites/bgp_userfeatures/test_ibgp_peers_basic.py b/tests/suites/bgp_userfeatures/test_ibgp_peers_basic.py index 68ce2d6b10..02b75f26d1 100644 --- a/tests/suites/bgp_userfeatures/test_ibgp_peers_basic.py +++ b/tests/suites/bgp_userfeatures/test_ibgp_peers_basic.py @@ -107,7 +107,7 @@ class TestIbgpPeersBasic: infra.execute_karaf_command(f"log:set {ODL_LOG_LEVEL}") infra.execute_karaf_command(f"log:set ${ODL_BGP_LOG_LEVEL} org.opendaylight.bgpcep") infra.execute_karaf_command(f"log:set ${ODL_BGP_LOG_LEVEL} org.opendaylight.protocol") - + with allure_step_with_separate_logging("step_tc1_configure_two_ibgp_route_reflector_client_peers"): """Configure two iBGP peers as routing reflector clients.""" self.configure_ibgp_peer(BGP_PEER1_IP, rr_client=True, cluster_id=False) @@ -269,7 +269,7 @@ class TestIbgpPeersBasic: in second peer which has local route-reflector-cluster-id.""" mapping = {"IP": BGP_PEER2_IP, "BGP_RIB_OPENCONFIG": "example-bgp-rib", "PEER_NUMBER": 1, "CLUSTER_ID": BGP_PEER1_IP, "DEFAULT_ID": "127.0.0.4"} utils.wait_until_function_pass(10, 1, templated_requests.get_templated_request, f"{BGP_DATA_FOLDER}/cluster_id/peer_rib_out", mapping, verify=True) - + with allure_step_with_separate_logging("step_tc4_disconnect_bgp_peers"): """Stop BGP peer & store logs.""" bgp.stop_bgp_speaker(self.bgp_peer1_process) pre-commit: exit 1 (13.50 seconds) /w/workspace/bgpcep-tox-verify-master> pre-commit run --all-files --show-diff-on-failure pid=2388 pre-commit: FAIL ✖ in 17.14 seconds docs-linkcheck: freeze> python -m pip freeze --all docs: freeze> python -m pip freeze --all docs-linkcheck: alabaster==1.0.0,attrs==25.4.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.10.5,charset-normalizer==3.4.4,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.60.1,funcparserlib==2.0.0a0,future==1.0.0,idna==3.11,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.9,lfdocs-conf==0.9.0,MarkupSafe==3.0.3,matplotlib==3.10.7,numpy==2.3.4,nwdiag==3.0.0,packaging==25.0,pillow==12.0.0,pip==25.3,Pygments==2.19.2,pyparsing==3.2.5,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.3,requests==2.32.5,requests-file==1.5.1,roman-numerals-py==3.1.0,seqdiag==3.0.0,setuptools==80.9.0,six==1.17.0,snowballstemmer==3.0.1,Sphinx==8.2.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.2,sphinx-tabs==3.4.7,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.5.0,webcolors==25.10.0 docs-linkcheck: commands[0]> sphinx-build -b linkcheck -d /w/workspace/bgpcep-tox-verify-master/.tox/docs-linkcheck/tmp/doctrees ./docs/ /w/workspace/bgpcep-tox-verify-master/docs/_build/linkcheck docs: alabaster==1.0.0,attrs==25.4.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.10.5,charset-normalizer==3.4.4,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.60.1,funcparserlib==2.0.0a0,future==1.0.0,idna==3.11,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.9,lfdocs-conf==0.9.0,MarkupSafe==3.0.3,matplotlib==3.10.7,numpy==2.3.4,nwdiag==3.0.0,packaging==25.0,pillow==12.0.0,pip==25.3,Pygments==2.19.2,pyparsing==3.2.5,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.3,requests==2.32.5,requests-file==1.5.1,roman-numerals-py==3.1.0,seqdiag==3.0.0,setuptools==80.9.0,six==1.17.0,snowballstemmer==3.0.1,Sphinx==8.2.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.2,sphinx-tabs==3.4.7,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.5.0,webcolors==25.10.0 docs: commands[0]> sphinx-build -W --keep-going -b html -n -d /w/workspace/bgpcep-tox-verify-master/.tox/docs/tmp/doctrees ./docs/ /w/workspace/bgpcep-tox-verify-master/docs/_build/html Running Sphinx v8.2.3 loading translations [en]... done Running Sphinx v8.2.3 loading translations [en]... done making output directory... done Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. loading intersphinx inventory 'common-packer' from https://docs.releng.linuxfoundation.org/projects/common-packer/en/stable/objects.inv ... loading intersphinx inventory 'global-jjb' from https://docs.releng.linuxfoundation.org/projects/global-jjb/en/stable/objects.inv ... loading intersphinx inventory 'lfdocs' from https://docs.releng.linuxfoundation.org/en/latest/objects.inv ... loading intersphinx inventory 'lfdocs-conf' from https://docs.releng.linuxfoundation.org/projects/lfdocs-conf/en/stable/objects.inv ... loading intersphinx inventory 'lftools' from https://docs.releng.linuxfoundation.org/projects/lftools/en/stable/objects.inv ... loading intersphinx inventory 'pipelines' from https://docs.releng.linuxfoundation.org/projects/pipelines/en/latest/objects.inv ... loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ... making output directory... done Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. loading intersphinx inventory 'common-packer' from https://docs.releng.linuxfoundation.org/projects/common-packer/en/stable/objects.inv ... loading intersphinx inventory 'global-jjb' from https://docs.releng.linuxfoundation.org/projects/global-jjb/en/stable/objects.inv ... loading intersphinx inventory 'lfdocs' from https://docs.releng.linuxfoundation.org/en/latest/objects.inv ... loading intersphinx inventory 'lfdocs-conf' from https://docs.releng.linuxfoundation.org/projects/lfdocs-conf/en/stable/objects.inv ... loading intersphinx inventory 'lftools' from https://docs.releng.linuxfoundation.org/projects/lftools/en/stable/objects.inv ... loading intersphinx inventory 'pipelines' from https://docs.releng.linuxfoundation.org/projects/pipelines/en/latest/objects.inv ... loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ... building [mo]: targets for 0 po files that are out of date writing output... building [linkcheck]: targets for 58 source files that are out of date updating environment: [new config] 58 added, 0 changed, 0 removed reading sources... [ 2%] algo/algo-user-guide-algo-model reading sources... [ 3%] algo/algo-user-guide-running-algo reading sources... [ 5%] algo/index reading sources... [ 7%] bgp-developer-guide reading sources... [ 9%] bgp-monitoring-protocol-developer-guide reading sources... [ 10%] bgp/bgp-user-guide-additional-path-capability reading sources... [ 12%] bgp/bgp-user-guide-bgp-application-peer building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 58 source files that are out of date updating environment: [new config] 58 added, 0 changed, 0 removed reading sources... [ 2%] algo/algo-user-guide-algo-model reading sources... [ 14%] bgp/bgp-user-guide-bgp-peering reading sources... [ 3%] algo/algo-user-guide-running-algo reading sources... [ 5%] algo/index reading sources... [ 7%] bgp-developer-guide reading sources... [ 9%] bgp-monitoring-protocol-developer-guide reading sources... [ 10%] bgp/bgp-user-guide-additional-path-capability reading sources... [ 12%] bgp/bgp-user-guide-bgp-application-peer reading sources... [ 16%] bgp/bgp-user-guide-bgp-server reading sources... [ 17%] bgp/bgp-user-guide-config-concepts reading sources... [ 14%] bgp/bgp-user-guide-bgp-peering reading sources... [ 19%] bgp/bgp-user-guide-evpn-family reading sources... [ 16%] bgp/bgp-user-guide-bgp-server reading sources... [ 17%] bgp/bgp-user-guide-config-concepts reading sources... [ 19%] bgp/bgp-user-guide-evpn-family reading sources... [ 21%] bgp/bgp-user-guide-flowspec-family reading sources... [ 21%] bgp/bgp-user-guide-flowspec-family reading sources... [ 22%] bgp/bgp-user-guide-graceful-restart-capability reading sources... [ 22%] bgp/bgp-user-guide-graceful-restart-capability reading sources... [ 24%] bgp/bgp-user-guide-high-availability reading sources... [ 26%] bgp/bgp-user-guide-ip-unicast-family reading sources... [ 24%] bgp/bgp-user-guide-high-availability reading sources... [ 28%] bgp/bgp-user-guide-l3vpn-family reading sources... [ 26%] bgp/bgp-user-guide-ip-unicast-family reading sources... [ 28%] bgp/bgp-user-guide-l3vpn-family reading sources... [ 29%] bgp/bgp-user-guide-labeled-family reading sources... [ 29%] bgp/bgp-user-guide-labeled-family reading sources... [ 31%] bgp/bgp-user-guide-linkstate-family reading sources... [ 31%] bgp/bgp-user-guide-linkstate-family reading sources... [ 33%] bgp/bgp-user-guide-long-lived-graceful-restart-capability reading sources... [ 33%] bgp/bgp-user-guide-long-lived-graceful-restart-capability reading sources... [ 34%] bgp/bgp-user-guide-mvpn-family reading sources... [ 34%] bgp/bgp-user-guide-mvpn-family reading sources... [ 36%] bgp/bgp-user-guide-operational-state reading sources... [ 36%] bgp/bgp-user-guide-operational-state reading sources... [ 38%] bgp/bgp-user-guide-overview reading sources... [ 40%] bgp/bgp-user-guide-pmsi-attribute reading sources... [ 41%] bgp/bgp-user-guide-protocol-configuration reading sources... [ 43%] bgp/bgp-user-guide-protocol-configuration-loader reading sources... [ 38%] bgp/bgp-user-guide-overview reading sources... [ 45%] bgp/bgp-user-guide-revised-error-handling reading sources... [ 40%] bgp/bgp-user-guide-pmsi-attribute reading sources... [ 47%] bgp/bgp-user-guide-rib-config-policies reading sources... [ 41%] bgp/bgp-user-guide-protocol-configuration reading sources... [ 43%] bgp/bgp-user-guide-protocol-configuration-loader reading sources... [ 45%] bgp/bgp-user-guide-revised-error-handling reading sources... [ 47%] bgp/bgp-user-guide-rib-config-policies reading sources... [ 48%] bgp/bgp-user-guide-route-refresh-capability reading sources... [ 50%] bgp/bgp-user-guide-route-target-family reading sources... [ 52%] bgp/bgp-user-guide-running-bgp reading sources... [ 53%] bgp/bgp-user-guide-supported-capabilities reading sources... [ 55%] bgp/bgp-user-guide-test-tools reading sources... [ 57%] bgp/bgp-user-guide-topology-provider reading sources... [ 59%] bgp/bgp-user-guide-troubleshooting reading sources... [ 60%] bgp/index reading sources... [ 62%] bmp/bgp-monitoring-protocol-user-guide-config-concepts reading sources... [ 48%] bgp/bgp-user-guide-route-refresh-capability reading sources... [ 64%] bmp/bgp-monitoring-protocol-user-guide-overview reading sources... [ 66%] bmp/bgp-monitoring-protocol-user-guide-running-bmp reading sources... [ 50%] bgp/bgp-user-guide-route-target-family reading sources... [ 67%] bmp/bgp-monitoring-protocol-user-guide-supported-capabilities reading sources... [ 69%] bmp/bgp-monitoring-protocol-user-guide-test-tools reading sources... [ 71%] bmp/bgp-monitoring-protocol-user-guide-troubleshooting reading sources... [ 72%] bmp/index reading sources... [ 74%] graph/graph-user-guide-graph-model reading sources... [ 52%] bgp/bgp-user-guide-running-bgp reading sources... [ 53%] bgp/bgp-user-guide-supported-capabilities reading sources... [ 76%] graph/graph-user-guide-manage-graph reading sources... [ 55%] bgp/bgp-user-guide-test-tools reading sources... [ 78%] graph/graph-user-guide-running-graph reading sources... [ 79%] graph/index reading sources... [ 81%] index reading sources... [ 83%] pcep-developer-guide reading sources... [ 57%] bgp/bgp-user-guide-topology-provider reading sources... [ 84%] pcep/index reading sources... [ 86%] pcep/pcep-user-guide-active-stateful-pce reading sources... [ 59%] bgp/bgp-user-guide-troubleshooting reading sources... [ 60%] bgp/index reading sources... [ 62%] bmp/bgp-monitoring-protocol-user-guide-config-concepts reading sources... [ 64%] bmp/bgp-monitoring-protocol-user-guide-overview reading sources... [ 66%] bmp/bgp-monitoring-protocol-user-guide-running-bmp reading sources... [ 67%] bmp/bgp-monitoring-protocol-user-guide-supported-capabilities reading sources... [ 69%] bmp/bgp-monitoring-protocol-user-guide-test-tools reading sources... [ 71%] bmp/bgp-monitoring-protocol-user-guide-troubleshooting reading sources... [ 72%] bmp/index reading sources... [ 74%] graph/graph-user-guide-graph-model reading sources... [ 88%] pcep/pcep-user-guide-cli reading sources... [ 76%] graph/graph-user-guide-manage-graph reading sources... [ 90%] pcep/pcep-user-guide-overview reading sources... [ 91%] pcep/pcep-user-guide-pce-server reading sources... [ 78%] graph/graph-user-guide-running-graph reading sources... [ 79%] graph/index reading sources... [ 81%] index reading sources... [ 93%] pcep/pcep-user-guide-running-pcep reading sources... [ 83%] pcep-developer-guide reading sources... [ 95%] pcep/pcep-user-guide-session-statistics reading sources... [ 97%] pcep/pcep-user-guide-supported-capabilities reading sources... [ 98%] pcep/pcep-user-guide-test-tools reading sources... [100%] pcep/pcep-user-guide-troubleshooting looking for now-outdated files... none found reading sources... [ 84%] pcep/index reading sources... [ 86%] pcep/pcep-user-guide-active-stateful-pce pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... Writing evaluated template result to /w/workspace/bgpcep-tox-verify-master/docs/_build/html/_static/basic.css Writing evaluated template result to /w/workspace/bgpcep-tox-verify-master/docs/_build/html/_static/documentation_options.js Writing evaluated template result to /w/workspace/bgpcep-tox-verify-master/docs/_build/html/_static/language_data.js Writing evaluated template result to /w/workspace/bgpcep-tox-verify-master/docs/_build/html/_static/bootstrap-sphinx.css Writing evaluated template result to /w/workspace/bgpcep-tox-verify-master/docs/_build/html/_static/bootstrap-sphinx.js copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 2%] algo/algo-user-guide-algo-model reading sources... [ 88%] pcep/pcep-user-guide-cli reading sources... [ 90%] pcep/pcep-user-guide-overview reading sources... [ 91%] pcep/pcep-user-guide-pce-server reading sources... [ 93%] pcep/pcep-user-guide-running-pcep reading sources... [ 95%] pcep/pcep-user-guide-session-statistics writing output... [ 3%] algo/algo-user-guide-running-algo reading sources... [ 97%] pcep/pcep-user-guide-supported-capabilities reading sources... [ 98%] pcep/pcep-user-guide-test-tools writing output... [ 5%] algo/index reading sources... [100%] pcep/pcep-user-guide-troubleshooting writing output... [ 7%] bgp-developer-guide looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying assets: done writing output... [ 2%] algo/algo-user-guide-algo-model writing output... [ 9%] bgp-monitoring-protocol-developer-guide writing output... [ 3%] algo/algo-user-guide-running-algo writing output... [ 5%] algo/index writing output... [ 7%] bgp-developer-guide writing output... [ 9%] bgp-monitoring-protocol-developer-guide writing output... [ 10%] bgp/bgp-user-guide-additional-path-capability writing output... [ 12%] bgp/bgp-user-guide-bgp-application-peer writing output... [ 14%] bgp/bgp-user-guide-bgp-peering writing output... [ 10%] bgp/bgp-user-guide-additional-path-capability writing output... [ 16%] bgp/bgp-user-guide-bgp-server writing output... [ 17%] bgp/bgp-user-guide-config-concepts writing output... [ 19%] bgp/bgp-user-guide-evpn-family writing output... [ 21%] bgp/bgp-user-guide-flowspec-family writing output... [ 22%] bgp/bgp-user-guide-graceful-restart-capability writing output... [ 24%] bgp/bgp-user-guide-high-availability writing output... [ 26%] bgp/bgp-user-guide-ip-unicast-family writing output... [ 28%] bgp/bgp-user-guide-l3vpn-family writing output... [ 29%] bgp/bgp-user-guide-labeled-family writing output... [ 12%] bgp/bgp-user-guide-bgp-application-peer writing output... [ 31%] bgp/bgp-user-guide-linkstate-family writing output... [ 33%] bgp/bgp-user-guide-long-lived-graceful-restart-capability writing output... [ 34%] bgp/bgp-user-guide-mvpn-family writing output... [ 36%] bgp/bgp-user-guide-operational-state writing output... [ 38%] bgp/bgp-user-guide-overview writing output... [ 40%] bgp/bgp-user-guide-pmsi-attribute writing output... [ 41%] bgp/bgp-user-guide-protocol-configuration writing output... [ 43%] bgp/bgp-user-guide-protocol-configuration-loader writing output... [ 45%] bgp/bgp-user-guide-revised-error-handling writing output... [ 47%] bgp/bgp-user-guide-rib-config-policies writing output... [ 48%] bgp/bgp-user-guide-route-refresh-capability writing output... [ 50%] bgp/bgp-user-guide-route-target-family writing output... [ 52%] bgp/bgp-user-guide-running-bgp writing output... [ 53%] bgp/bgp-user-guide-supported-capabilities writing output... [ 55%] bgp/bgp-user-guide-test-tools writing output... [ 57%] bgp/bgp-user-guide-topology-provider writing output... [ 59%] bgp/bgp-user-guide-troubleshooting writing output... [ 60%] bgp/index writing output... [ 62%] bmp/bgp-monitoring-protocol-user-guide-config-concepts writing output... [ 64%] bmp/bgp-monitoring-protocol-user-guide-overview writing output... [ 66%] bmp/bgp-monitoring-protocol-user-guide-running-bmp writing output... [ 67%] bmp/bgp-monitoring-protocol-user-guide-supported-capabilities writing output... [ 69%] bmp/bgp-monitoring-protocol-user-guide-test-tools writing output... [ 71%] bmp/bgp-monitoring-protocol-user-guide-troubleshooting writing output... [ 72%] bmp/index writing output... [ 74%] graph/graph-user-guide-graph-model writing output... [ 76%] graph/graph-user-guide-manage-graph writing output... [ 78%] graph/graph-user-guide-running-graph writing output... [ 79%] graph/index writing output... [ 81%] index writing output... [ 83%] pcep-developer-guide writing output... [ 84%] pcep/index writing output... [ 14%] bgp/bgp-user-guide-bgp-peering writing output... [ 86%] pcep/pcep-user-guide-active-stateful-pce writing output... [ 16%] bgp/bgp-user-guide-bgp-server writing output... [ 88%] pcep/pcep-user-guide-cli writing output... [ 90%] pcep/pcep-user-guide-overview writing output... [ 91%] pcep/pcep-user-guide-pce-server writing output... [ 93%] pcep/pcep-user-guide-running-pcep writing output... [ 95%] pcep/pcep-user-guide-session-statistics writing output... [ 97%] pcep/pcep-user-guide-supported-capabilities writing output... [ 98%] pcep/pcep-user-guide-test-tools writing output... [100%] pcep/pcep-user-guide-troubleshooting writing output... [ 17%] bgp/bgp-user-guide-config-concepts (bgp-developer-guide: line 32) -ignored- https://tools.ietf.org/html/rfc4271 (bgp-developer-guide: line 32) -ignored- https://tools.ietf.org/html/rfc4760 (bgp-developer-guide: line 32) -ignored- https://tools.ietf.org/html/rfc4456 (bgp-developer-guide: line 32) -ignored- https://tools.ietf.org/html/rfc1997 (bgp-developer-guide: line 32) -ignored- https://tools.ietf.org/html/rfc4360 (bgp-developer-guide: line 39) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/concepts/src/main/yang/bgp-types.yang;hb=refs/heads/stable/boron (bgp-developer-guide: line 42) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/concepts/src/main/java/org/opendaylight/bgp/concepts/NextHopUtil.java;hb=refs/heads/stable/boron (bgp-developer-guide: line 57) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/BGPActivator.java;hb=refs/heads/stable/boron (bgp-developer-guide: line 95) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleBGPExtensionProviderContext.java;hb=refs/heads/stable/boron (bgp-developer-guide: line 95) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=tree;f=bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi;hb=refs/heads/stable/boron (bgp-developer-guide: line 194) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPSynchronization.java;hb=refs/heads/stable/boron (bgp-developer-guide: line 203) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPPeer.java;hb=refs/heads/stable/boron (bgp-developer-guide: line 203) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/StrictBGPPeerRegistry.java;hb=refs/heads/stable/boron (bgp-developer-guide: line 214) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeer.java;hb=refs/heads/stable/boron (bgp-developer-guide: line 223) -ignored- https://tools.ietf.org/html/rfc4271#section-3.2 (bgp-developer-guide: line 229) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/RIBSupport.java;hb=refs/heads/stable/boron (bgp-developer-guide: line 242) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/AdjRibInWriter.java;hb=refs/heads/stable/boron (bgp-developer-guide: line 248) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/EffectiveRibInWriter.java;hb=refs/heads/stable/boron (bgp-developer-guide: line 253) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/LocRibWriter.java;hb=refs/heads/stable/boron (bgp-developer-guide: line 259) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/AdjRibOutListener.java;h=a14fd54a29ea613b381a36248f67491d968963b8;hb=refs/heads/stable/boron (bgp-developer-guide: line 266) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/inet/src/main/yang/bgp-inet.yang;hb=refs/heads/stable/boron (bgp-developer-guide: line 274) -ignored- https://tools.ietf.org/html/rfc5575 (bgp-developer-guide: line 274) -ignored- https://tools.ietf.org/html/draft-ietf-idr-flow-spec-v6-06 (bgp-developer-guide: line 274) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/flowspec/src/main/yang/bgp-flowspec.yang;hb=refs/heads/stable/boron (bgp-developer-guide: line 289) -ignored- https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-04 (bgp-developer-guide: line 289) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/linkstate/src/main/yang/bgp-linkstate.yang;hb=refs/heads/stable/boron (bgp-developer-guide: line 289) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/attribute/LinkstateAttributeParser.java;hb=HEAD (bgp-developer-guide: line 289) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/nlri/LinkstateNlriParser.java;hb=HEAD (bgp-developer-guide: line 289) -ignored- https://tools.ietf.org/html/draft-ietf-idr-te-lsp-distribution-03 (bgp-developer-guide: line 289) -ignored- https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-00 (bgp-developer-guide: line 289) -ignored- https://tools.ietf.org/html/draft-ietf-idr-bgpls-segment-routing-epe-02 (bgp-developer-guide: line 312) -ignored- https://tools.ietf.org/html/rfc3107 (bgp-developer-guide: line 312) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob_plain;f=bgp/labeled-unicast/src/main/yang/bgp-labeled-unicast.yang;hb=refs/heads/stable/boron (bgp-developer-guide: line 326) -ignored- https://tools.ietf.org/html/draft-clemm-netmod-yang-network-topo-01 (bgp-monitoring-protocol-developer-guide: line 50) -ignored- https://tools.ietf.org/html/draft-ietf-grow-bmp-15 (bgp/bgp-user-guide-additional-path-capability: line 344) -ignored- https://tools.ietf.org/html/rfc7911 (bgp/bgp-user-guide-additional-path-capability: line 345) -ignored- https://tools.ietf.org/html/draft-ietf-idr-add-paths-guidelines-08 (bgp/bgp-user-guide-config-concepts: line 88) -ignored- https://tools.ietf.org/html/rfc6793 (bgp/bgp-user-guide-config-concepts: line 89) -ignored- https://tools.ietf.org/html/rfc7311 (bgp/bgp-user-guide-config-concepts: line 90) -ignored- https://tools.ietf.org/html/rfc5668 (bgp/bgp-user-guide-config-concepts: line 91) -ignored- https://tools.ietf.org/html/draft-ietf-idr-link-bandwidth-06 (bgp/bgp-user-guide-config-concepts: line 92) -ignored- https://tools.ietf.org/html/rfc7938 (bgp/bgp-user-guide-evpn-family: line 1021) -ignored- https://tools.ietf.org/html/rfc7432 (bgp/bgp-user-guide-evpn-family: line 1022) -ignored- https://tools.ietf.org/html/rfc7623 (bgp/bgp-user-guide-evpn-family: line 1023) -ignored- https://tools.ietf.org/html/draft-ietf-bess-evpn-vpws-07 (bgp/bgp-user-guide-evpn-family: line 1024) -ignored- https://tools.ietf.org/html/draft-ietf-bess-evpn-overlay-04 (bgp/bgp-user-guide-evpn-family: line 1025) -ignored- https://tools.ietf.org/html/draft-ietf-bess-dci-evpn-overlay-04 (bgp/bgp-user-guide-evpn-family: line 1026) -ignored- https://tools.ietf.org/html/draft-ietf-bess-evpn-usage-03 (bgp/bgp-user-guide-flowspec-family: line 1390) -ignored- https://tools.ietf.org/html/draft-ietf-idr-flow-spec-v6-07 (bgp/bgp-user-guide-flowspec-family: line 1391) -ignored- https://tools.ietf.org/html/draft-ietf-idr-flowspec-redirect-ip-00 (bgp/bgp-user-guide-flowspec-family: line 1392) -ignored- https://tools.ietf.org/html/rfc7674 (bgp/bgp-user-guide-flowspec-family: line 1393) -ignored- https://tools.ietf.org/html/draft-ietf-idr-bgp-flowspec-oid-03 (bgp/bgp-user-guide-graceful-restart-capability: line 174) -ignored- https://tools.ietf.org/html/rfc4724 (bgp/bgp-user-guide-l3vpn-family: line 651) -ignored- https://tools.ietf.org/html/rfc4364 (bgp/bgp-user-guide-l3vpn-family: line 652) -ignored- https://tools.ietf.org/html/rfc4659 (bgp/bgp-user-guide-l3vpn-family: line 653) -ignored- https://tools.ietf.org/html/draft-ietf-bess-virtual-pe-00 (bgp/bgp-user-guide-labeled-family: line 460) -ignored- https://tools.ietf.org/html/draft-ietf-idr-bgp-prefix-sid-03 (bgp/bgp-user-guide-labeled-family: line 461) -ignored- https://tools.ietf.org/html/rfc4798 (bgp/bgp-user-guide-labeled-family: line 462) -ignored- https://tools.ietf.org/html/draft-ietf-spring-segment-routing-msdc-01 (bgp/bgp-user-guide-labeled-family: line 463) -ignored- https://tools.ietf.org/html/draft-gredler-idr-bgplu-epe-06 (bgp/bgp-user-guide-linkstate-family: line 659) -ignored- https://tools.ietf.org/html/rfc9552 (bgp/bgp-user-guide-linkstate-family: line 660) -ignored- https://tools.ietf.org/html/rfc9085 (bgp/bgp-user-guide-linkstate-family: line 661) -ignored- https://tools.ietf.org/html/rfc9086 (bgp/bgp-user-guide-linkstate-family: line 662) -ignored- https://tools.ietf.org/html/rfc9351 (bgp/bgp-user-guide-linkstate-family: line 663) -ignored- https://tools.ietf.org/html/rfc9514 (bgp/bgp-user-guide-linkstate-family: line 664) -ignored- https://tools.ietf.org/html/rfc8814 (bgp/bgp-user-guide-linkstate-family: line 665) -ignored- https://tools.ietf.org/html/rfc8571 (bgp/bgp-user-guide-linkstate-family: line 666) -ignored- https://tools.ietf.org/html/rfc9294 (bgp/bgp-user-guide-linkstate-family: line 667) -ignored- https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-impl-04 (bgp/bgp-user-guide-long-lived-graceful-restart-capability: line 75) -ignored- https://tools.ietf.org/html/draft-uttaro-idr-bgp-persistence-04 (bgp/bgp-user-guide-mvpn-family: line 994) -ignored- https://tools.ietf.org/html/rfc6513 (bgp/bgp-user-guide-mvpn-family: line 995) -ignored- https://tools.ietf.org/html/rfc6514 (bgp/bgp-user-guide-mvpn-family: line 996) -ignored- https://tools.ietf.org/html/rfc6515 (bgp/bgp-user-guide-revised-error-handling: line 6) -ignored- https://tools.ietf.org/html/rfc7606 (bgp/bgp-user-guide-rib-config-policies: line 8) -ignored- https://tools.ietf.org/html/rfc8212 (bgp/bgp-user-guide-route-refresh-capability: line 58) -ignored- https://tools.ietf.org/html/rfc2918 (bgp/bgp-user-guide-route-target-family: line 433) -ignored- https://tools.ietf.org/html/rfc4684 (bgp/bgp-user-guide-supported-capabilities: line 11) -ignored- https://tools.ietf.org/html/rfc4486 (bgp/bgp-user-guide-supported-capabilities: line 12) -ignored- https://tools.ietf.org/html/rfc5492 (bgp/bgp-user-guide-supported-capabilities: line 13) -ignored- https://tools.ietf.org/html/rfc5004 (bgp/bgp-user-guide-supported-capabilities: line 14) -ignored- https://tools.ietf.org/html/rfc6286 (bgp/bgp-user-guide-supported-capabilities: line 19) -ignored- https://tools.ietf.org/html/draft-ietf-idr-bgp-extended-messages-13 (bgp/bgp-user-guide-supported-capabilities: line 21) -ignored- https://tools.ietf.org/html/rfc7752 (bgp/bgp-user-guide-supported-capabilities: line 22) -ignored- https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-03 (bgp/bgp-user-guide-supported-capabilities: line 23) -ignored- https://tools.ietf.org/html/draft-ietf-idr-bgpls-segment-routing-epe-05 (bgp/bgp-user-guide-supported-capabilities: line 25) -ignored- http://tools.ietf.org/html/rfc7674 (bgp/bgp-user-guide-supported-capabilities: line 39) -ignored- https://tools.ietf.org/html/draft-sajassi-bess-evpn-vpws-fxc-01 (bmp/bgp-monitoring-protocol-user-guide-supported-capabilities: line 7) -ignored- https://tools.ietf.org/html/rfc7854 (pcep-developer-guide: line 68) -ignored- https://tools.ietf.org/html/rfc5441 (pcep-developer-guide: line 68) -ignored- https://tools.ietf.org/html/rfc5541 (pcep-developer-guide: line 68) -ignored- https://tools.ietf.org/html/rfc5455 (pcep-developer-guide: line 68) -ignored- https://tools.ietf.org/html/rfc5557 (pcep-developer-guide: line 68) -ignored- https://tools.ietf.org/html/rfc5521 (pcep-developer-guide: line 120) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimplePCEPExtensionProviderContext.java;hb=HEAD (pcep-developer-guide: line 120) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=tree;f=pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo;hb=HEAD (pcep-developer-guide: line 162) -ignored- https://tools.ietf.org/html/draft-ietf-pce-stateful-pce (pcep-developer-guide: line 162) -ignored- https://tools.ietf.org/html/draft-ietf-pce-pce-initiated-lsp (pcep-developer-guide: line 173) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/api/src/main/yang/pcep-types.yang;hb=HEAD (pcep-developer-guide: line 198) -ignored- https://tools.ietf.org/html/draft-ietf-pce-segment-routing-01 (pcep-developer-guide: line 213) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/segment-routing/src/main/yang/odl-pcep-segment-routing.yang;hb=HEAD (pcep-developer-guide: line 218) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/SrEroSubobjectParser.java;hb=HEAD (pcep-developer-guide: line 218) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/SrPceCapabilityTlvParser.java;hb=HEAD (pcep-developer-guide: line 220) -ignored- https://tools.ietf.org/html/draft-ietf-pce-lsp-setup-type-01 (pcep-developer-guide: line 228) -ignored- https://git.opendaylight.org/gerrit/gitweb?p=bgpcep.git;a=blob;f=pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/PathSetupTypeTlvParser.java;hb=HEAD (pcep/pcep-user-guide-supported-capabilities: line 6) -ignored- https://tools.ietf.org/html/rfc5440 (pcep/pcep-user-guide-supported-capabilities: line 8) -ignored- https://tools.ietf.org/html/rfc5520 (pcep/pcep-user-guide-supported-capabilities: line 12) -ignored- https://tools.ietf.org/html/rfc5886 (pcep/pcep-user-guide-supported-capabilities: line 13) -ignored- https://tools.ietf.org/html/rfc7470 (pcep/pcep-user-guide-supported-capabilities: line 14) -ignored- https://tools.ietf.org/html/rfc7896 (pcep/pcep-user-guide-supported-capabilities: line 15) -ignored- https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-16 (pcep/pcep-user-guide-supported-capabilities: line 16) -ignored- https://tools.ietf.org/html/draft-ietf-pce-pce-initiated-lsp-07 (pcep/pcep-user-guide-supported-capabilities: line 17) -ignored- https://tools.ietf.org/html/draft-ietf-pce-segment-routing-07 (pcep/pcep-user-guide-supported-capabilities: line 18) -ignored- https://tools.ietf.org/html/draft-ietf-pce-lsp-setup-type-03 (pcep/pcep-user-guide-supported-capabilities: line 19) -ignored- https://tools.ietf.org/html/draft-ietf-pce-stateful-sync-optimizations-05 (pcep/pcep-user-guide-supported-capabilities: line 20) -ignored- https://tools.ietf.org/html/draft-sivabalan-pce-binding-label-sid-01 (pcep/pcep-user-guide-supported-capabilities: line 21) -ignored- https://tools.ietf.org/html/draft-ietf-pce-pceps-10 (pcep/pcep-user-guide-supported-capabilities: line 22) -ignored- https://tools.ietf.org/html/rfc8306 (pcep/pcep-user-guide-troubleshooting: line 67) -ignored- https://tools.ietf.org/html/rfc4655 (pcep/pcep-user-guide-troubleshooting: line 68) -ignored- https://tools.ietf.org/html/rfc4657 (pcep/pcep-user-guide-troubleshooting: line 69) -ignored- https://tools.ietf.org/html/rfc7399 (pcep/pcep-user-guide-troubleshooting: line 70) -ignored- https://tools.ietf.org/html/rfc7491 (pcep/pcep-user-guide-troubleshooting: line 71) -ignored- https://tools.ietf.org/html/rfc5623 (pcep/pcep-user-guide-troubleshooting: line 72) -ignored- https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-app-07 writing output... [ 19%] bgp/bgp-user-guide-evpn-family writing output... [ 21%] bgp/bgp-user-guide-flowspec-family writing output... [ 22%] bgp/bgp-user-guide-graceful-restart-capability (bgp/bgp-user-guide-evpn-family: line 976) ok http://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml#tunnel-types writing output... [ 24%] bgp/bgp-user-guide-high-availability (algo/algo-user-guide-algo-model: line 30) ok https://en.wikipedia.org/wiki/Constrained_Shortest_Path_First (graph/graph-user-guide-graph-model: line 50) ok https://en.wikipedia.org/wiki/Graph_theory (algo/algo-user-guide-algo-model: line 30) ok https://en.wikipedia.org/wiki/Shortest_path_problem writing output... [ 26%] bgp/bgp-user-guide-ip-unicast-family writing output... [ 28%] bgp/bgp-user-guide-l3vpn-family writing output... [ 29%] bgp/bgp-user-guide-labeled-family writing output... [ 31%] bgp/bgp-user-guide-linkstate-family writing output... [ 33%] bgp/bgp-user-guide-long-lived-graceful-restart-capability writing output... [ 34%] bgp/bgp-user-guide-mvpn-family writing output... [ 36%] bgp/bgp-user-guide-operational-state writing output... [ 38%] bgp/bgp-user-guide-overview (bgp/bgp-user-guide-troubleshooting: line 41) redirect https://jira.opendaylight.org/browse/BGPCEP-756?jql=project%20%3D%20BGPCEP%20AND%20component%20%3D%20BGP - with Found to https://lf-opendaylight.atlassian.net/issues/?jql=project+%3D+BGPCEP+AND+component+%3D+BGP&selectedIssue=BGPCEP-756 writing output... [ 40%] bgp/bgp-user-guide-pmsi-attribute writing output... [ 41%] bgp/bgp-user-guide-protocol-configuration writing output... [ 43%] bgp/bgp-user-guide-protocol-configuration-loader writing output... [ 45%] bgp/bgp-user-guide-revised-error-handling writing output... [ 47%] bgp/bgp-user-guide-rib-config-policies (bmp/bgp-monitoring-protocol-user-guide-troubleshooting: line 43) redirect https://jira.opendaylight.org/projects/BGPCEP/issues/BGPCEP-589?filter=allopenissues - with Found to https://lf-opendaylight.atlassian.net/jira/software/c/projects/BGPCEP/issues/?filter=allopenissues&selectedIssue=BGPCEP-589 build succeeded. Look for any errors in the above output or in docs/_build/linkcheck/output.txt writing output... [ 48%] bgp/bgp-user-guide-route-refresh-capability writing output... [ 50%] bgp/bgp-user-guide-route-target-family writing output... [ 52%] bgp/bgp-user-guide-running-bgp writing output... [ 53%] bgp/bgp-user-guide-supported-capabilities writing output... [ 55%] bgp/bgp-user-guide-test-tools writing output... [ 57%] bgp/bgp-user-guide-topology-provider writing output... [ 59%] bgp/bgp-user-guide-troubleshooting writing output... [ 60%] bgp/index writing output... [ 62%] bmp/bgp-monitoring-protocol-user-guide-config-concepts writing output... [ 64%] bmp/bgp-monitoring-protocol-user-guide-overview writing output... [ 66%] bmp/bgp-monitoring-protocol-user-guide-running-bmp writing output... [ 67%] bmp/bgp-monitoring-protocol-user-guide-supported-capabilities writing output... [ 69%] bmp/bgp-monitoring-protocol-user-guide-test-tools writing output... [ 71%] bmp/bgp-monitoring-protocol-user-guide-troubleshooting writing output... [ 72%] bmp/index writing output... [ 74%] graph/graph-user-guide-graph-model writing output... [ 76%] graph/graph-user-guide-manage-graph writing output... [ 78%] graph/graph-user-guide-running-graph writing output... [ 79%] graph/index writing output... [ 81%] index writing output... [ 83%] pcep-developer-guide writing output... [ 84%] pcep/index writing output... [ 86%] pcep/pcep-user-guide-active-stateful-pce writing output... [ 88%] pcep/pcep-user-guide-cli writing output... [ 90%] pcep/pcep-user-guide-overview writing output... [ 91%] pcep/pcep-user-guide-pce-server writing output... [ 93%] pcep/pcep-user-guide-running-pcep writing output... [ 95%] pcep/pcep-user-guide-session-statistics writing output... [ 97%] pcep/pcep-user-guide-supported-capabilities writing output... [ 98%] pcep/pcep-user-guide-test-tools writing output... [100%] pcep/pcep-user-guide-troubleshooting generating indices... genindex done highlighting module code... writing additional pages... search done copying images... [ 4%] images/bgpcep/bgp-dependency-tree.png copying images... [ 7%] images/bgpcep/PathAttributesSerialization.png copying images... [ 11%] images/bgpcep/RIB.png copying images... [ 15%] bgp/images/local-as.png copying images... [ 19%] bgp/images/MultipleClustersIds.png copying images... [ 22%] bgp/images/bgp-pipeline.png copying images... [ 26%] bgp/images/bgp-app-pipeline.png copying images... [ 30%] bgp/images/BGP_HA.png copying images... [ 33%] bgp/images/BGP_HA_failure.png copying images... [ 37%] bgp/images/BGP_HA_recovery.png copying images... [ 41%] bmp/images/bmp.png copying images... [ 44%] bmp/images/bmp-plugin.png copying images... [ 48%] images/bgpcep/pcep-dependency-tree.png copying images... [ 52%] images/bgpcep/pcep-parsing.png copying images... [ 56%] images/bgpcep/validation.png copying images... [ 59%] pcep/images/pcep-sync.png copying images... [ 63%] pcep/images/pcep-delegation-return.png copying images... [ 67%] pcep/images/pcep-update.png copying images... [ 70%] pcep/images/pcep-initiate.png copying images... [ 74%] pcep/images/pcep-deletion.png copying images... [ 78%] pcep/images/pcep-revoke-delegation.png copying images... [ 81%] pcep/images/pcep-sync-skipped.png copying images... [ 85%] pcep/images/pcep-sync-incremental.png copying images... [ 89%] pcep/images/pcep-sync-initial.png copying images... [ 93%] pcep/images/pcep-re-sync.png copying images... [ 96%] pcep/images/pcep.png copying images... [100%] pcep/images/pcep-plugin.png dumping search index in English (code: en)... done dumping object inventory... done build succeeded. The HTML pages are in docs/_build/html. docs-linkcheck: OK ✔ in 27.78 seconds docs: OK (29.45=setup[22.96]+cmd[6.48] seconds) docs-linkcheck: OK (27.78=setup[22.86]+cmd[4.91] seconds) pre-commit: FAIL code 1 (17.14=setup[3.64]+cmd[13.50] seconds) evaluation failed :( (29.47 seconds)