docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt docs: install_deps> python -I -m pip install -r docs/requirements.txt pre-commit: install_deps> python -I -m pip install pre-commit 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.3.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/080_bgp_functional_rt_constrain.py Fixing tests/suites/bgp_userfeatures/bgp_app_peer_basic.py Fixing tests/suites/bgp_userfeatures/060_bgp_functional_mvpn.py Fixing tests/suites/bgp_userfeatures/050_bmp_basic.py Fixing tests/suites/bgp_userfeatures/ebgp_peers_basic.py Fixing tests/suites/bgp_userfeatures/bgp_functional_md5.py Fixing tests/suites/bgp_userfeatures/040_bgp_functional_route_ref.py Fixing tests/suites/bgp_userfeatures/bgp_policies_default.py Fixing tests/suites/bgp_userfeatures/030_bgp_functional_evpn.py Fixing tests/suites/bgp_userfeatures/basic.py Fixing tests/suites/bgp_userfeatures/bgp_llgr_basic.py Fixing tests/libraries/utils.py Fixing tests/suites/bgp_userfeatures/ibgp_peer_lsp.py Fixing tests/suites/bgp_userfeatures/ibgp_peers_basic.py Fixing tests/suites/bgp_userfeatures/bgp_ipv6_basic.py Fixing tests/suites/bgp_userfeatures/090_bgp_functional_rt_constrain_validation.py Fixing tests/suites/bgp_userfeatures/020_bgp_functional_multipath.py Fixing tests/suites/bgp_userfeatures/010_bgp_functional_l3vpn.py Fixing tests/suites/bgp_userfeatures/010_bgp_flowspec.py Fixing tests/suites/bgp_userfeatures/070_bgp_functional_l3vpn_mcast.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/080_bgp_functional_rt_constrain.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 Substituting tabs in: tests/suites/bgp_userfeatures/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/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/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 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 bc1754164b..d0f8281532 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 @@ -631,7 +631,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 b56a410a51..842e821174 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("data/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 7e6335a85b..39e4b7b0b8 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( "data/templates/node_speaker_entity", mapping, json=False ) - + return resposne def add_lsp(pcc_ip: str, lsp_name: str): @@ -108,7 +108,7 @@ def add_lsp(pcc_ip: str, lsp_name: str): resposne = templated_requests.post_templated_request( "data/templates/pcep_add_lsp", mapping, json=False ) - + return resposne def update_lsp(pcc_ip: str, lsp_name: str): @@ -116,7 +116,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 def remove_lsp(pcc_ip: str, lsp_name: str): @@ -124,7 +124,7 @@ def remove_lsp(pcc_ip: str, lsp_name: str): resposne = templated_requests.post_templated_request( "data/templates/pcep_remove_lsp", mapping, json=False, accept="*/*" ) - + return resposne diff --git a/tests/libraries/prefix_counting.py b/tests/libraries/prefix_counting.py index 5a49480ecf..e759244cd5 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("data/bgpuser/empty_topology", None, verify=True) diff --git a/tests/libraries/utils.py b/tests/libraries/utils.py index 016464caa4..20e823c5b2 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) > 500: visual_diff = visual_diff[:500] + " ... (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/010_bgp_flowspec.py b/tests/suites/bgp_userfeatures/010_bgp_flowspec.py index 60fadbbe73..ac89087010 100644 --- a/tests/suites/bgp_userfeatures/010_bgp_flowspec.py +++ b/tests/suites/bgp_userfeatures/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/010_bgp_functional_l3vpn.py b/tests/suites/bgp_userfeatures/010_bgp_functional_l3vpn.py index 9c26c5f224..252e7d26eb 100644 --- a/tests/suites/bgp_userfeatures/010_bgp_functional_l3vpn.py +++ b/tests/suites/bgp_userfeatures/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 data/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/020_bgp_functional_multipath.py b/tests/suites/bgp_userfeatures/020_bgp_functional_multipath.py index 4ce45f123a..088247c539 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/030_bgp_functional_evpn.py b/tests/suites/bgp_userfeatures/030_bgp_functional_evpn.py index edc0a8f740..6f85b735fa 100644 --- a/tests/suites/bgp_userfeatures/030_bgp_functional_evpn.py +++ b/tests/suites/bgp_userfeatures/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 @@ -163,7 +163,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) @@ -171,7 +171,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.""" @@ -416,5 +416,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/040_bgp_functional_route_ref.py b/tests/suites/bgp_userfeatures/040_bgp_functional_route_ref.py index eb2c60a7df..e5b9c36a5f 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/050_bmp_basic.py b/tests/suites/bgp_userfeatures/050_bmp_basic.py index 80a8b70484..0b6e83ce5b 100644 --- a/tests/suites/bgp_userfeatures/050_bmp_basic.py +++ b/tests/suites/bgp_userfeatures/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/060_bgp_functional_mvpn.py b/tests/suites/bgp_userfeatures/060_bgp_functional_mvpn.py index 4116ff33cc..36d105ea60 100644 --- a/tests/suites/bgp_userfeatures/060_bgp_functional_mvpn.py +++ b/tests/suites/bgp_userfeatures/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. @@ -92,7 +92,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.""" @@ -190,5 +190,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/070_bgp_functional_l3vpn_mcast.py b/tests/suites/bgp_userfeatures/070_bgp_functional_l3vpn_mcast.py index cc941f8dee..52cb4cb48b 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/080_bgp_functional_rt_constrain.py b/tests/suites/bgp_userfeatures/080_bgp_functional_rt_constrain.py index 4fc4a15960..9e89533f54 100644 --- a/tests/suites/bgp_userfeatures/080_bgp_functional_rt_constrain.py +++ b/tests/suites/bgp_userfeatures/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/090_bgp_functional_rt_constrain_validation.py b/tests/suites/bgp_userfeatures/090_bgp_functional_rt_constrain_validation.py index 739161cf59..bfd1b7c16a 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/basic.py b/tests/suites/bgp_userfeatures/basic.py index 04dd3b663e..eea28b4656 100644 --- a/tests/suites/bgp_userfeatures/basic.py +++ b/tests/suites/bgp_userfeatures/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 @@ -239,7 +239,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/bgp_app_peer_basic.py b/tests/suites/bgp_userfeatures/bgp_app_peer_basic.py index 15dc5997d6..7a37e6b151 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_immediatelp(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_functional_md5.py b/tests/suites/bgp_userfeatures/bgp_functional_md5.py index d136bed171..4677979935 100644 --- a/tests/suites/bgp_userfeatures/bgp_functional_md5.py +++ b/tests/suites/bgp_userfeatures/bgp_functional_md5.py @@ -48,7 +48,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"} @@ -88,6 +88,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/bgp_ipv6_basic.py b/tests/suites/bgp_userfeatures/bgp_ipv6_basic.py index bb8a98b038..5e7a79bd5b 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_llgr_basic.py b/tests/suites/bgp_userfeatures/bgp_llgr_basic.py index ca2b7b3e61..5029040420 100644 --- a/tests/suites/bgp_userfeatures/bgp_llgr_basic.py +++ b/tests/suites/bgp_userfeatures/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 @@ -43,11 +43,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("data/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("data/ipv6/bgp_peer", mapping) @@ -73,7 +73,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/bgp_policies_default.py b/tests/suites/bgp_userfeatures/bgp_policies_default.py index 0d9122ebe0..556093b40b 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 5007c0754b..e747344de2 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 29bde1d253..e17b388e13 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/ibgp_peers_basic.py b/tests/suites/bgp_userfeatures/ibgp_peers_basic.py index 1b925300a3..7bdb5aba8b 100644 --- a/tests/suites/bgp_userfeatures/ibgp_peers_basic.py +++ b/tests/suites/bgp_userfeatures/ibgp_peers_basic.py @@ -106,7 +106,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) @@ -268,7 +268,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.06 seconds) /w/workspace/bgpcep-tox-verify-master> pre-commit run --all-files --show-diff-on-failure pid=2398 pre-commit: FAIL ✖ in 16.67 seconds docs: freeze> python -m pip freeze --all docs-linkcheck: freeze> python -m pip freeze --all 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 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 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 [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... [ 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 [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... [ 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... [ 16%] bgp/bgp-user-guide-bgp-server reading sources... [ 17%] bgp/bgp-user-guide-config-concepts reading sources... [ 12%] bgp/bgp-user-guide-bgp-application-peer reading sources... [ 19%] bgp/bgp-user-guide-evpn-family reading sources... [ 14%] bgp/bgp-user-guide-bgp-peering reading sources... [ 21%] bgp/bgp-user-guide-flowspec-family reading sources... [ 22%] bgp/bgp-user-guide-graceful-restart-capability reading sources... [ 16%] bgp/bgp-user-guide-bgp-server reading sources... [ 17%] bgp/bgp-user-guide-config-concepts reading sources... [ 24%] bgp/bgp-user-guide-high-availability reading sources... [ 19%] bgp/bgp-user-guide-evpn-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... [ 31%] bgp/bgp-user-guide-linkstate-family reading sources... [ 33%] bgp/bgp-user-guide-long-lived-graceful-restart-capability reading sources... [ 34%] bgp/bgp-user-guide-mvpn-family reading sources... [ 21%] bgp/bgp-user-guide-flowspec-family reading sources... [ 36%] bgp/bgp-user-guide-operational-state 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... [ 28%] bgp/bgp-user-guide-l3vpn-family reading sources... [ 38%] bgp/bgp-user-guide-overview reading sources... [ 40%] bgp/bgp-user-guide-pmsi-attribute reading sources... [ 29%] bgp/bgp-user-guide-labeled-family 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... [ 31%] bgp/bgp-user-guide-linkstate-family reading sources... [ 47%] bgp/bgp-user-guide-rib-config-policies reading sources... [ 33%] bgp/bgp-user-guide-long-lived-graceful-restart-capability reading sources... [ 34%] bgp/bgp-user-guide-mvpn-family reading sources... [ 48%] bgp/bgp-user-guide-route-refresh-capability reading sources... [ 36%] bgp/bgp-user-guide-operational-state 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... [ 38%] bgp/bgp-user-guide-overview reading sources... [ 40%] bgp/bgp-user-guide-pmsi-attribute 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... [ 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... [ 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... [ 76%] graph/graph-user-guide-manage-graph 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... [ 84%] pcep/index reading sources... [ 86%] pcep/pcep-user-guide-active-stateful-pce 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 reading sources... [ 48%] bgp/bgp-user-guide-route-refresh-capability reading sources... [ 97%] pcep/pcep-user-guide-supported-capabilities reading sources... [ 50%] bgp/bgp-user-guide-route-target-family reading sources... [ 98%] pcep/pcep-user-guide-test-tools reading sources... [100%] pcep/pcep-user-guide-troubleshooting reading sources... [ 52%] bgp/bgp-user-guide-running-bgp reading sources... [ 53%] bgp/bgp-user-guide-supported-capabilities looking for now-outdated files... none found reading sources... [ 55%] bgp/bgp-user-guide-test-tools 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 reading sources... [ 57%] bgp/bgp-user-guide-topology-provider 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... [ 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... [ 76%] graph/graph-user-guide-manage-graph reading sources... [ 78%] graph/graph-user-guide-running-graph reading sources... [ 79%] graph/index reading sources... [ 81%] index reading sources... [ 83%] pcep-developer-guide writing output... [ 3%] algo/algo-user-guide-running-algo writing output... [ 5%] algo/index writing output... [ 7%] bgp-developer-guide reading sources... [ 84%] pcep/index reading sources... [ 86%] pcep/pcep-user-guide-active-stateful-pce 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 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 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 pickling environment... done writing output... [ 16%] bgp/bgp-user-guide-bgp-server checking consistency... done preparing documents... done copying assets... copying assets: done writing output... [ 2%] algo/algo-user-guide-algo-model 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... [ 17%] bgp/bgp-user-guide-config-concepts 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... [ 19%] bgp/bgp-user-guide-evpn-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... [ 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... [ 21%] bgp/bgp-user-guide-flowspec-family 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... [ 22%] bgp/bgp-user-guide-graceful-restart-capability writing output... [ 24%] bgp/bgp-user-guide-high-availability writing output... [ 86%] pcep/pcep-user-guide-active-stateful-pce writing output... [ 26%] bgp/bgp-user-guide-ip-unicast-family 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 (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... [ 28%] bgp/bgp-user-guide-l3vpn-family writing output... [ 29%] bgp/bgp-user-guide-labeled-family (bgp/bgp-user-guide-evpn-family: line 976) ok http://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml#tunnel-types 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 (algo/algo-user-guide-algo-model: line 30) ok https://en.wikipedia.org/wiki/Shortest_path_problem (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/Constrained_Shortest_Path_First 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 (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 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 (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 build succeeded. Look for any errors in the above output or in docs/_build/linkcheck/output.txt 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 29.81 seconds docs: OK (30.05=setup[23.58]+cmd[6.47] seconds) docs-linkcheck: OK (29.81=setup[23.68]+cmd[6.12] seconds) pre-commit: FAIL code 1 (16.67=setup[3.60]+cmd[13.06] seconds) evaluation failed :( (30.08 seconds)