docs: install_deps> python -I -m pip install -r docs/requirements.txt docs: freeze> python -m pip freeze --all docs: alabaster==1.0.0,attrs==26.1.0,babel==2.18.0,certifi==2026.10.19,charset-normalizer==3.5.2,contourpy==1.3.3,cycler==0.12.1,deepmerge==3.0.1,docutils==0.22.4,elastic-transport==8.19.0,elasticsearch==8.19.3,elasticsearch-dsl==8.15.4,fonttools==4.67.0,idna==3.20,imagesize==2.0.1,Jinja2==3.1.6,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,jsonschema_rs==0.58.6,kiwisolver==1.5.1,lfdocs_conf==0.11.0,MarkupSafe==3.0.4,matplotlib==3.11.2,minijinja==2.24.0,mistune==3.4.0,numpy==2.4.6,packaging==26.3,picobox==4.0.0,pillow==13.0.0,pip==26.2.2,Pygments==2.21.0,pyparsing==3.3.3,python-dateutil==2.9.0.post0,PyYAML==6.0.3,referencing==0.37.0,requests==2.34.2,requests-file==3.0.1,robotframework==7.5,roman-numerals==4.1.0,rpds-py==2026.9.1,setuptools==84.2.1,six==1.17.0,snowballstemmer==3.1.1,Sphinx==9.0.4,sphinx-data-viewer==0.1.5,sphinx-needs==9.0.0,sphinx-tabs==3.5.0,sphinx_mdinclude==0.6.2,sphinx_rtd_theme==3.1.0,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-httpdomain==2.2.1,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==2.0.0,sphinxcontrib-mermaid==2.1.1,sphinxcontrib-openapi==0.10.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-serializinghtml==2.0.0,typing_extensions==4.16.0,ub-project==1.1.0,urllib3==2.8.0 docs: commands[0]> sphinx-build -W -n -b html -d /w/workspace/integration-test-tox-verify-master/.tox/docs/tmp/doctrees ./docs/ /w/workspace/integration-test-tox-verify-master/docs/_build/html Running Sphinx v9.0.4 /w/workspace/integration-test-tox-verify-master/csit/libraries /w/workspace/integration-test-tox-verify-master/docs /w/workspace/integration-test-tox-verify-master/docs/_static/integration/robot /w/workspace/integration-test-tox-verify-master/csit/libraries /w/workspace/integration-test-tox-verify-master/docs /w/workspace/integration-test-tox-verify-master/csit/libraries /w/workspace/integration-test-tox-verify-master/docs /w/workspace/integration-test-tox-verify-master/docs/_build/robot /w/workspace/integration-test-tox-verify-master/csit/libraries /w/workspace/integration-test-tox-verify-master/docs /w/workspace/integration-test-tox-verify-master/csit/libraries /w/workspace/integration-test-tox-verify-master/docs /w/workspace/integration-test-tox-verify-master/docs/_build/robot/WorkflowsL2switch.robot.html /w/workspace/integration-test-tox-verify-master/docs/_build/robot/AAAJsonUtils.py.html /w/workspace/integration-test-tox-verify-master/docs/_build/robot/YangCollection.robot.html /w/workspace/integration-test-tox-verify-master/docs/_build/robot/MdsalLowlevelPy.py.html /w/workspace/integration-test-tox-verify-master/docs/_build/robot/BGPcliKeywords.robot.html Importing library '/w/workspace/integration-test-tox-verify-master/csit/libraries/MininetTopo/topo-3sw-2host_multipath.py' failed: ModuleNotFoundError: No module named 'mininet' Traceback (most recent call last): File "/w/workspace/integration-test-tox-verify-master/csit/libraries/MininetTopo/topo-3sw-2host_multipath.py", line 11, in from mininet.topo import Topo PYTHONPATH: /w/workspace/integration-test-tox-verify-master/csit/libraries/MininetTopo /w/workspace/integration-test-tox-verify-master/csit/libraries /opt/pyenv/versions/3.11.10/lib/python311.zip /opt/pyenv/versions/3.11.10/lib/python3.11 /opt/pyenv/versions/3.11.10/lib/python3.11/lib-dynload /w/workspace/integration-test-tox-verify-master/.tox/docs/lib/python3.11/site-packages Try --help for usage information. /w/workspace/integration-test-tox-verify-master/docs /w/workspace/integration-test-tox-verify-master/docs/_build/robot /w/workspace/integration-test-tox-verify-master/docs /w/workspace/integration-test-tox-verify-master/docs 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 ... loading intersphinx inventory 'odl-releng-builder' from http://docs.opendaylight.org/projects/releng-builder/en/latest/objects.inv ... intersphinx inventory has moved: http://docs.opendaylight.org/projects/releng-builder/en/latest/objects.inv -> https://docs.opendaylight.org/projects/releng-builder/en/latest/objects.inv building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 12 source files that are out of date updating environment: [new config] 12 added, 0 changed, 0 removed reading sources... [ 8%] cluster/carbon/caveats reading sources... [ 17%] cluster/carbon/index reading sources... [ 25%] cluster/carbon/release reading sources... [ 33%] cluster/carbon/sandbox reading sources... [ 42%] cluster/carbon/scenarios reading sources... [ 50%] cluster/carbon/sr1 reading sources... [ 58%] cluster/carbon/sr2 reading sources... [ 67%] cluster/carbon/tests reading sources... [ 75%] cluster/index reading sources... [ 83%] index reading sources... [ 92%] run-test-locally reading sources... [100%] system-test-guide looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... Writing evaluated template result to /w/workspace/integration-test-tox-verify-master/docs/_build/html/_static/basic.css Writing evaluated template result to /w/workspace/integration-test-tox-verify-master/docs/_build/html/_static/language_data.js Writing evaluated template result to /w/workspace/integration-test-tox-verify-master/docs/_build/html/_static/documentation_options.js Writing evaluated template result to /w/workspace/integration-test-tox-verify-master/docs/_build/html/_static/js/versions.js copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 8%] cluster/carbon/caveats writing output... [ 17%] cluster/carbon/index writing output... [ 25%] cluster/carbon/release writing output... [ 33%] cluster/carbon/sandbox writing output... [ 42%] cluster/carbon/scenarios writing output... [ 50%] cluster/carbon/sr1 writing output... [ 58%] cluster/carbon/sr2 writing output... [ 67%] cluster/carbon/tests writing output... [ 75%] cluster/index writing output... [ 83%] index writing output... [ 92%] run-test-locally writing output... [100%] system-test-guide generating indices... genindex done highlighting module code... writing additional pages... search done dumping search index in English (code: en)... done dumping object inventory... done build succeeded. The HTML pages are in docs/_build/html. docs: OK ✔ in 29.42 seconds pre-commit: install_deps> python -I -m pip install pre-commit pre-commit: freeze> python -m pip freeze --all pre-commit: cfgv==3.5.0,distlib==0.4.4,filelock==4.2.4,identify==2.6.20,nodeenv==1.11.0,packaging==26.3,pip==26.2.2,platformdirs==4.13.5,pre_commit==4.7.0,python-discovery==1.6.4,PyYAML==6.0.3,setuptools==84.2.1,virtualenv==21.14.12 pre-commit: commands[0]> pre-commit run --all-files --show-diff-on-failure [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/PyCQA/flake8. [INFO] Initializing environment for https://github.com/psf/black. [INFO] Initializing environment for https://github.com/MarketSquare/robotframework-tidy. [INFO] Initializing environment for https://github.com/MarketSquare/robotframework-tidy:robotframework==6.1.1. [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. [INFO] Initializing environment for local:rstcheck,sphinx. [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/PyCQA/flake8. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for https://github.com/psf/black. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for https://github.com/MarketSquare/robotframework-tidy. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for local. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... trim trailing whitespace.................................................Passed flake8...................................................................Failed - hook id: flake8 - exit code: 1 tools/fastbgp/play2.py:2747:28: W292 no newline at end of file threaded_job(arguments) ^ black....................................................................Failed - hook id: black - files were modified by this hook reformatted tools/fastbgp/play2.py All done! ✨ 🍰 ✨ 1 file reformatted, 105 files left unchanged. robotidy.................................................................Passed rstcheck.................................................................Passed 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/tools/fastbgp/play2.py b/tools/fastbgp/play2.py index ca7dfd28..60a23a67 100755 --- a/tools/fastbgp/play2.py +++ b/tools/fastbgp/play2.py @@ -179,7 +179,9 @@ def parse_arguments(): str_help = "Link-State NLRI supported" parser.add_argument("--bgpls", default=False, type=bool, help=str_help) str_help = "Link-State NLRI: Identifier" - parser.add_argument("-lsid", "--lsid", dest="lsid", default=1, type=int, help=str_help) + parser.add_argument( + "-lsid", "--lsid", dest="lsid", default=1, type=int, help=str_help + ) str_help = "Link-State NLRI: Policy Color" parser.add_argument( "--color", "-lstid", dest="color", default=100, type=int, help=str_help @@ -835,12 +837,8 @@ class MessageGenerator(object): Returns: :return: dictionary of LS NLRI parameters and values """ - identifier = self.ls_nlri_default["Identifier"] + int( - index / self.lsid_step - ) - color = self.ls_nlri_default["Color"] + int( - index / self.color_step - ) + identifier = self.ls_nlri_default["Identifier"] + int(index / self.lsid_step) + color = self.ls_nlri_default["Color"] + int(index / self.color_step) discriminator = self.ls_nlri_default["Discriminator"] + int( index / self.discriminator_step ) @@ -1492,14 +1490,22 @@ class MessageGenerator(object): # SR Policy Candidate Path Descriptor TLV (TLV 554) - RFC 9857 Section 4 tlv_554_val = ( - struct.pack("B", int(ls_nlri["ProtocolOrigin"])) # 1 octet: Protocol-Origin + struct.pack( + "B", int(ls_nlri["ProtocolOrigin"]) + ) # 1 octet: Protocol-Origin + b"\x00" # 1 octet: Flags (E=0, O=0 for IPv4) + b"\x00\x00" # 2 octets: Reserved + struct.pack(">I", int(ls_nlri["Endpoint"])) # 4 octets: Endpoint + struct.pack(">I", int(ls_nlri["Color"])) # 4 octets: Policy Color - + struct.pack(">I", int(ls_nlri["OriginatorASN"])) # 4 octets: Originator ASN - + struct.pack(">I", int(ls_nlri["OriginatorAddress"])) # 4 octets: Originator Address - + struct.pack(">I", int(ls_nlri["Discriminator"])) # 4 octets: Discriminator + + struct.pack( + ">I", int(ls_nlri["OriginatorASN"]) + ) # 4 octets: Originator ASN + + struct.pack( + ">I", int(ls_nlri["OriginatorAddress"]) + ) # 4 octets: Originator Address + + struct.pack( + ">I", int(ls_nlri["Discriminator"]) + ) # 4 octets: Discriminator ) tlv_554 = struct.pack(">HH", 554, len(tlv_554_val)) + tlv_554_val @@ -2744,4 +2750,4 @@ def threaded_job(arguments): if __name__ == "__main__": arguments = parse_arguments() logger = create_logger(arguments.loglevel, arguments.logfile) - threaded_job(arguments) \ No newline at end of file + threaded_job(arguments) pre-commit: exit 1 (43.38 seconds) /w/workspace/integration-test-tox-verify-master> pre-commit run --all-files --show-diff-on-failure pid=2565 pre-commit: FAIL ✖ in 46.23 seconds gitlint: install_deps> python -I -m pip install gitlint gitlint: freeze> python -m pip freeze --all gitlint: arrow==1.2.3,click==8.1.3,gitlint==0.19.1,gitlint-core==0.19.1,pip==26.2.2,python-dateutil==2.9.0.post0,setuptools==84.2.1,sh==1.14.3,six==1.17.0 gitlint: commands[0]> gitlint docs: OK (29.42=setup[24.87]+cmd[4.55] seconds) pre-commit: FAIL code 1 (46.23=setup[2.85]+cmd[43.38] seconds) gitlint: OK (4.20=setup[4.07]+cmd[0.13] seconds) evaluation failed :( (79.88 seconds)