Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/integration/test/+/126996 Running as SYSTEM [EnvInject] - Loading node environment variables. Building remotely on prd-ubuntu2204-builder-2c-2g-66254 (ubuntu2204-builder-2c-2g) in workspace /w/workspace/integration-test-tox-verify-master [ssh-agent] Looking for ssh-agent implementation... [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) $ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-XXXXXXjcpAwi/agent.1527 SSH_AGENT_PID=1529 [ssh-agent] Started. Running ssh-add (command line suppressed) Identity added: /w/workspace/integration-test-tox-verify-master@tmp/private_key_12136340246232269013.key (/w/workspace/integration-test-tox-verify-master@tmp/private_key_12136340246232269013.key) [ssh-agent] Using credentials jenkins (jenkins-ssh) The recommended git tool is: NONE using credential jenkins-ssh Wiping out workspace first. Cloning the remote Git repository Cloning repository git://devvexx.opendaylight.org/mirror/integration/test > git init /w/workspace/integration-test-tox-verify-master # timeout=10 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/integration/test > git --version # timeout=10 > git --version # 'git version 2.34.1' using GIT_SSH to set credentials jenkins-ssh Verifying host key using known hosts file, will automatically accept unseen keys > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/integration/test +refs/heads/*:refs/remotes/origin/* # timeout=10 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/integration/test # timeout=10 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/integration/test # timeout=10 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/integration/test using GIT_SSH to set credentials jenkins-ssh Verifying host key using known hosts file, will automatically accept unseen keys > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/integration/test refs/changes/96/126996/12 # timeout=10 > git rev-parse d4358c72b9c180eec1fe21e00ddfdf9bf3d9eb8a^{commit} # timeout=10 JENKINS-19022: warning: possible memory leak due to Git plugin usage; see: https://plugins.jenkins.io/git/#remove-git-plugin-buildsbybranch-builddata-script Checking out Revision d4358c72b9c180eec1fe21e00ddfdf9bf3d9eb8a (refs/changes/96/126996/12) > git config core.sparsecheckout # timeout=10 > git checkout -f d4358c72b9c180eec1fe21e00ddfdf9bf3d9eb8a # timeout=10 Commit message: "Evolve play.py" > git rev-parse FETCH_HEAD^{commit} # timeout=10 > git rev-list --no-walk bdc93385bb050b6186bde22f0aef66669c0844c1 # timeout=10 provisioning config files... copy managed file [npmrc] to file:/home/jenkins/.npmrc copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins5682854408596529168.sh ---> python-tools-install.sh Setup pyenv: * system (set by /opt/pyenv/version) * 3.8.20 (set by /opt/pyenv/version) * 3.9.20 (set by /opt/pyenv/version) 3.10.15 3.11.10 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-Ee2U lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) lf-activate-venv(): INFO: Installing additional packages: lftools lf-activate-venv(): INFO: Adding /tmp/venv-Ee2U/bin to PATH Generating Requirements File ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. botocore 1.43.117 requires python-dateutil<3.0.0,>=2.1, but you have python-dateutil 3.0.0 which is incompatible. httplib2 0.30.2 requires pyparsing<4,>=3.0.4, but you have pyparsing 2.4.7 which is incompatible. Python 3.11.10 pip 26.2.2 from /tmp/venv-Ee2U/lib/python3.11/site-packages/pip (python 3.11) aiohappyeyeballs==2.7.1 aiohttp==3.14.5 aiosignal==1.4.0 appdirs==1.4.4 argcomplete==3.7.2 aspy.yaml==1.3.0 attrs==26.1.0 autopage==0.6.0 beautifulsoup4==4.15.0 boto3==1.43.117 botocore==1.43.117 bs4==0.0.2 certifi==2026.10.19 cffi==2.1.1 cfgv==3.5.0 chardet==7.7.0 charset-normalizer==3.5.2 click==8.5.0 cliff==4.17.0 cmd2==4.3.0 cryptography==3.3.2 debtcollector==3.1.0 decorator==5.3.1 defusedxml==0.7.1 Deprecated==1.3.1 distlib==0.4.4 dnspython==2.9.0 docker==7.2.0 dogpile.cache==1.5.0 durationpy==0.11 email-validator==2.3.0 filelock==4.2.4 frozenlist==1.8.0 future==1.0.0 gitdb==4.0.12 GitPython==3.2.1 httplib2==0.30.2 identify==2.6.20 idna==3.20 importlib-resources==1.5.0 iso8601==2.1.0 Jinja2==3.1.6 jmespath==1.1.0 jsonpatch==1.36 jsonpointer==3.4 jsonschema==4.26.0 jsonschema-specifications==2025.9.1 keystoneauth1==5.18.1 kubernetes==36.0.3 lftools==0.37.26 lxml==6.1.3 markdown-it-py==4.2.0 MarkupSafe==3.0.4 mdurl==0.1.2 msgpack==1.2.3 multi_key_dict==2.0.3 multidict==7.1.0 munch==4.0.0 netaddr==1.3.0 niet==1.4.2 nodeenv==1.11.0 oauth2client==4.1.3 oauthlib==4.0.0 openstacksdk==4.21.0 os-service-types==1.9.0 osc-lib==4.7.0 oslo.config==10.7.0 oslo.context==6.5.0 oslo.i18n==6.9.0 oslo.log==8.3.2 oslo.serialization==5.11.0 oslo.utils==10.2.0 packaging==26.3 pbr==7.1.3 platformdirs==4.13.5 prettytable==3.18.0 prompt_toolkit==3.0.53 propcache==0.5.4 psutil==7.2.2 pyasn1==0.6.4 pyasn1_modules==0.4.2 pycparser==3.11 pygerrit2==2.0.15 PyGithub==2.10.0 Pygments==2.21.0 PyJWT==2.15.1 PyNaCl==1.6.2 pyparsing==2.4.7 pyperclip==1.11.0 pyrsistent==0.20.0 python-dateutil==3.0.0 python-discovery==1.6.4 python-heatclient==5.3.0 python-jenkins==1.8.3 python-keystoneclient==6.0.0 python-magnumclient==5.0.0 python-manilaclient==6.3.0 python-openstackclient==10.4.0 python-swiftclient==4.11.0 PyYAML==6.0.3 referencing==0.37.0 requests==2.34.2 requests-oauthlib==2.0.0 rfc3986==2.0.0 rich==15.0.0 rich-argparse==1.8.0 rpds-py==2026.9.1 rsa==4.9.1 ruamel.yaml==0.19.1 ruamel.yaml.clib==0.2.15 s3transfer==0.19.3 simplejson==4.2.0 six==1.17.0 smmap==5.0.3 soupsieve==3.0.4 stevedore==5.9.1 tabulate==0.10.0 toml==0.10.2 tomlkit==0.15.2 tqdm==4.70.1 typing_extensions==4.16.0 tzdata==2026.5 urllib3==1.26.20 virtualenv==21.14.12 wcwidth==0.9.3 websocket-client==1.9.2 wrapt==2.5.1 xdg==6.0.0 xmltodict==1.0.4 yarl==1.25.1 yq==4.4.5 [integration-test-tox-verify-master] $ /bin/sh /tmp/jenkins16917044070727919220.sh ---> uv-install.sh Installing uv/uvx (latest) using shell installer 2026-10-22 10:28:18 URL:https://releases.astral.sh/installers/uv/latest/uv-installer.sh [71300/71300] -> "/tmp/uv-install-cjjEF3.sh" [1] downloading uv 0.13.5 x86_64-unknown-linux-gnu installing to /home/jenkins/.local/bin uv uvx everything's installed! To add $HOME/.local/bin to your PATH, either restart your shell or run: source $HOME/.local/bin/env (sh, bash, zsh) source $HOME/.local/bin/env.fish (fish) Adding install location to PATH ---> Validating uv/uvx install uvx 0.13.5 (x86_64-unknown-linux-gnu) [EnvInject] - Injecting environment variables from a build step. [EnvInject] - Injecting as environment variables the properties content PYTHON=python3 [EnvInject] - Variables injected successfully. [integration-test-tox-verify-master] $ /bin/bash -l /tmp/jenkins7751502657714404991.sh ---> tox-install.sh + source /home/jenkins/lf-env.sh + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 ++ mktemp -d /tmp/venv-XXXX + lf_venv=/tmp/venv-LH9z + local venv_file=/tmp/.os_lf_venv + local python=python3 + local options + local set_path=true + local install_args= ++ getopt -o np:v: -l no-path,system-site-packages,python:,venv-file: -n lf-activate-venv -- --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 + true + case $1 in + venv_file=/tmp/.toxenv + shift 2 + true + case $1 in + shift + break + case $python in + local pkg_list= + [[ -d /opt/pyenv ]] + echo 'Setup pyenv:' Setup pyenv: + export PYENV_ROOT=/opt/pyenv + PYENV_ROOT=/opt/pyenv + export PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin + PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin + pyenv versions system 3.8.20 3.9.20 3.10.15 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) + command -v pyenv ++ pyenv init - --no-rehash + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); for i in ${!paths[@]}; do if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; fi; done; echo "${paths[*]}"'\'')" export PATH="/opt/pyenv/shims:${PATH}" export PYENV_SHELL=bash source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' pyenv() { local command command="${1:-}" if [ "$#" -gt 0 ]; then shift fi case "$command" in rehash|shell) eval "$(pyenv "sh-$command" "$@")" ;; *) command pyenv "$command" "$@" ;; esac }' +++ bash --norc -ec 'IFS=:; paths=($PATH); for i in ${!paths[@]}; do if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; fi; done; echo "${paths[*]}"' ++ PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin ++ export PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin ++ PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin ++ export PYENV_SHELL=bash ++ PYENV_SHELL=bash ++ source /opt/pyenv/libexec/../completions/pyenv.bash +++ complete -F _pyenv pyenv ++ lf-pyver python3 ++ local py_version_xy=python3 ++ local py_version_xyz= ++ pyenv versions ++ local command ++ command=versions ++ '[' 1 -gt 0 ']' ++ shift ++ case "$command" in ++ command pyenv versions ++ sed 's/^[ *]* //' ++ awk '{ print $1 }' ++ grep -E '^[0-9.]*[0-9]$' ++ [[ ! -s /tmp/.pyenv_versions ]] +++ grep '^3' /tmp/.pyenv_versions +++ tail -n 1 +++ sort -V ++ py_version_xyz=3.11.10 ++ [[ -z 3.11.10 ]] ++ echo 3.11.10 ++ return 0 + pyenv local 3.11.10 + local command + command=local + '[' 2 -gt 0 ']' + shift + case "$command" in + command pyenv local 3.11.10 + for arg in "$@" + case $arg in + pkg_list+='tox ' + for arg in "$@" + case $arg in + pkg_list+='virtualenv ' + for arg in "$@" + case $arg in + pkg_list+='urllib3~=1.26.15 ' + [[ -f /tmp/.toxenv ]] + [[ ! -f /tmp/.toxenv ]] + [[ -n '' ]] + python3 -m venv /tmp/venv-LH9z + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-LH9z' lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-LH9z + echo /tmp/venv-LH9z + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) + local 'pip_opts=--upgrade --quiet' + pip_opts='--upgrade --quiet --trusted-host pypi.org' + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' + [[ -n '' ]] + [[ -n '' ]] + lf-venv-pip-install /tmp/venv-LH9z/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv + local venv_python=/tmp/venv-LH9z/bin/python3 + shift + local upstream=https://pypi.org/simple + /tmp/venv-LH9z/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv + return 0 + [[ -z tox virtualenv urllib3~=1.26.15 ]] + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 + lf-venv-pip-install /tmp/venv-LH9z/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 + local venv_python=/tmp/venv-LH9z/bin/python3 + shift + local upstream=https://pypi.org/simple + /tmp/venv-LH9z/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 + return 0 + type python3 + true + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-LH9z/bin to PATH' lf-activate-venv(): INFO: Adding /tmp/venv-LH9z/bin to PATH + PATH=/tmp/venv-LH9z/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin + return 0 + python3 --version Python 3.11.10 + python3 -m pip --version pip 26.2.2 from /tmp/venv-LH9z/lib/python3.11/site-packages/pip (python 3.11) + python3 -m pip freeze cachetools==7.2.4 colorama==0.4.6 distlib==0.4.4 filelock==4.2.4 packaging==26.3 platformdirs==4.13.5 pluggy==1.7.0 pyproject-api==1.12.0 python-discovery==1.6.4 tomli_w==1.2.0 tox==4.67.1 typing_extensions==4.16.0 urllib3==1.26.20 virtualenv==21.14.12 [integration-test-tox-verify-master] $ /bin/sh -xe /tmp/jenkins6204232266208714090.sh [EnvInject] - Injecting environment variables from a build step. [EnvInject] - Injecting as environment variables the properties content PARALLEL=False [EnvInject] - Variables injected successfully. [integration-test-tox-verify-master] $ /bin/bash -l /tmp/jenkins9525378518253664863.sh ---> tox-run.sh + PATH=/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin + ARCHIVE_TOX_DIR=/w/workspace/integration-test-tox-verify-master/archives/tox + ARCHIVE_DOC_DIR=/w/workspace/integration-test-tox-verify-master/archives/docs + mkdir -p /w/workspace/integration-test-tox-verify-master/archives/tox + cd /w/workspace/integration-test-tox-verify-master/. + source /home/jenkins/lf-env.sh + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 ++ mktemp -d /tmp/venv-XXXX + lf_venv=/tmp/venv-wM0o + local venv_file=/tmp/.os_lf_venv + local python=python3 + local options + local set_path=true + local install_args= ++ getopt -o np:v: -l no-path,system-site-packages,python:,venv-file: -n lf-activate-venv -- --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 + true + case $1 in + venv_file=/tmp/.toxenv + shift 2 + true + case $1 in + shift + break + case $python in + local pkg_list= + [[ -d /opt/pyenv ]] + echo 'Setup pyenv:' Setup pyenv: + export PYENV_ROOT=/opt/pyenv + PYENV_ROOT=/opt/pyenv + export PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin + PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin + pyenv versions system 3.8.20 3.9.20 3.10.15 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) + command -v pyenv ++ pyenv init - --no-rehash + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); for i in ${!paths[@]}; do if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; fi; done; echo "${paths[*]}"'\'')" export PATH="/opt/pyenv/shims:${PATH}" export PYENV_SHELL=bash source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' pyenv() { local command command="${1:-}" if [ "$#" -gt 0 ]; then shift fi case "$command" in rehash|shell) eval "$(pyenv "sh-$command" "$@")" ;; *) command pyenv "$command" "$@" ;; esac }' +++ bash --norc -ec 'IFS=:; paths=($PATH); for i in ${!paths[@]}; do if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; fi; done; echo "${paths[*]}"' ++ PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin ++ export PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin ++ PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin ++ export PYENV_SHELL=bash ++ PYENV_SHELL=bash ++ source /opt/pyenv/libexec/../completions/pyenv.bash +++ complete -F _pyenv pyenv ++ lf-pyver python3 ++ local py_version_xy=python3 ++ local py_version_xyz= ++ pyenv versions ++ local command ++ command=versions ++ '[' 1 -gt 0 ']' ++ shift ++ case "$command" in ++ command pyenv versions ++ awk '{ print $1 }' ++ grep -E '^[0-9.]*[0-9]$' ++ sed 's/^[ *]* //' ++ [[ ! -s /tmp/.pyenv_versions ]] +++ grep '^3' /tmp/.pyenv_versions +++ tail -n 1 +++ sort -V ++ py_version_xyz=3.11.10 ++ [[ -z 3.11.10 ]] ++ echo 3.11.10 ++ return 0 + pyenv local 3.11.10 + local command + command=local + '[' 2 -gt 0 ']' + shift + case "$command" in + command pyenv local 3.11.10 + for arg in "$@" + case $arg in + pkg_list+='tox ' + for arg in "$@" + case $arg in + pkg_list+='virtualenv ' + for arg in "$@" + case $arg in + pkg_list+='urllib3~=1.26.15 ' + [[ -f /tmp/.toxenv ]] ++ cat /tmp/.toxenv + lf_venv=/tmp/venv-LH9z + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-LH9z from' file:/tmp/.toxenv lf-activate-venv(): INFO: Reuse venv:/tmp/venv-LH9z from file:/tmp/.toxenv + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) + local 'pip_opts=--upgrade --quiet' + pip_opts='--upgrade --quiet --trusted-host pypi.org' + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' + [[ -n '' ]] + [[ -n '' ]] + lf-venv-pip-install /tmp/venv-LH9z/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv + local venv_python=/tmp/venv-LH9z/bin/python3 + shift + local upstream=https://pypi.org/simple + /tmp/venv-LH9z/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv + return 0 + [[ -z tox virtualenv urllib3~=1.26.15 ]] + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 + lf-venv-pip-install /tmp/venv-LH9z/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 + local venv_python=/tmp/venv-LH9z/bin/python3 + shift + local upstream=https://pypi.org/simple + /tmp/venv-LH9z/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 + return 0 + type python3 + true + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-LH9z/bin to PATH' lf-activate-venv(): INFO: Adding /tmp/venv-LH9z/bin to PATH + PATH=/tmp/venv-LH9z/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin + return 0 + [[ -d /opt/pyenv ]] + echo '---> Setting up pyenv' ---> Setting up pyenv + export PYENV_ROOT=/opt/pyenv + PYENV_ROOT=/opt/pyenv + export PATH=/opt/pyenv/bin:/tmp/venv-LH9z/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin + PATH=/opt/pyenv/bin:/tmp/venv-LH9z/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin ++ pwd + PYTHONPATH=/w/workspace/integration-test-tox-verify-master + export PYTHONPATH + export TOX_TESTENV_PASSENV=PYTHONPATH + TOX_TESTENV_PASSENV=PYTHONPATH + tox --version 4.67.1 from /tmp/venv-LH9z/lib/python3.11/site-packages/tox/__init__.py + PARALLEL=False + TOX_OPTIONS_LIST= + [[ -n '' ]] + case ${PARALLEL,,} in + tox + tee -a /w/workspace/integration-test-tox-verify-master/archives/tox/tox.log 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==3.0.0,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,tzdata==2026.5,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/YangCollection.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/MdsalLowlevelPy.py.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. parallel: This job failed: python -m robot.libdoc MininetTopo/topo-3sw-2host_multipath.py /w/workspace/integration-test-tox-verify-master/docs/_build/robot/MininetTopo/topo-3sw-2host_multipath.py.html /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 30.61 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/play.py:2682: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/play.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/play.py b/tools/fastbgp/play.py index 9839bafe..3735b2ca 100755 --- a/tools/fastbgp/play.py +++ b/tools/fastbgp/play.py @@ -181,7 +181,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 @@ -922,18 +924,16 @@ class MessageGenerator(object): """ if self.nlri_type == 6: identifier = self.base_identifier + int(index / self.lsid_step) - sid = ipaddr.IPv6Address(int(self.base_sid) + int(index / self.srv6_sid_step)) + sid = ipaddr.IPv6Address( + int(self.base_sid) + int(index / self.srv6_sid_step) + ) srv6_nlri_values = self.srv6_nlri_default.copy() srv6_nlri_values["Identifier"] = identifier srv6_nlri_values["SID"] = sid return srv6_nlri_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 ) @@ -1141,151 +1141,72 @@ class MessageGenerator(object): optional_parameters_hex = b"" if self.rfc4760 or self.allf: optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x00\x01" - b"\x00" - b"\x01" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x01" ) optional_parameters_hex += optional_parameter_hex if self.ipv6 or self.allf: optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x00\x02" - b"\x00" - b"\x01" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x02" b"\x00" b"\x01" ) optional_parameters_hex += optional_parameter_hex if self.bgpls or self.allf: optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x40\x04" - b"\x00" - b"\x47" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x40\x04" b"\x00" b"\x47" ) optional_parameters_hex += optional_parameter_hex if self.evpn or self.allf: optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x00\x19" - b"\x00" - b"\x46" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x19" b"\x00" b"\x46" ) optional_parameters_hex += optional_parameter_hex if self.mvpn or self.allf: optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x00\x01" - b"\x00" - b"\x05" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x05" ) optional_parameters_hex += optional_parameter_hex optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x00\x02" - b"\x00" - b"\x05" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x02" b"\x00" b"\x05" ) optional_parameters_hex += optional_parameter_hex if self.l3vpn_mcast or self.allf: optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x00\x01" - b"\x00" - b"\x81" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x81" ) optional_parameters_hex += optional_parameter_hex optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x00\x02" - b"\x00" - b"\x81" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x02" b"\x00" b"\x81" ) optional_parameters_hex += optional_parameter_hex if self.l3vpn or self.allf: optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x00\x01" - b"\x00" - b"\x80" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x80" ) optional_parameters_hex += optional_parameter_hex optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x00\x02" - b"\x00" - b"\x80" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x02" b"\x00" b"\x80" ) optional_parameters_hex += optional_parameter_hex if self.rt_constrain or self.allf: optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x00\x01" - b"\x00" - b"\x84" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x84" ) optional_parameters_hex += optional_parameter_hex if self.bgplu or self.allf: optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x01" - b"\x04" - b"\x00\x01" - b"\x00" - b"\x04" + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x04" ) optional_parameters_hex += optional_parameter_hex - optional_parameter_hex = ( - b"\x02" - b"\x06" - b"\x41" - b"\x04" - ) - optional_parameter_hex += struct.pack( - ">I", my_autonomous_system - ) + optional_parameter_hex = b"\x02" b"\x06" b"\x41" b"\x04" + optional_parameter_hex += struct.pack(">I", my_autonomous_system) optional_parameters_hex += optional_parameter_hex if self.grace != 8: @@ -1468,48 +1389,20 @@ class MessageGenerator(object): path_attributes_hex = b"" if not self.skipattr: - path_attributes_hex += ( - b"\x40" - b"\x01" - b"\x01" - b"\x00" - ) - path_attributes_hex += ( - b"\x40" - b"\x02" - b"\x06" - b"\x02" - b"\x01" - ) + path_attributes_hex += b"\x40" b"\x01" b"\x01" b"\x00" + path_attributes_hex += b"\x40" b"\x02" b"\x06" b"\x02" b"\x01" my_as_hex = struct.pack(">I", my_autonomous_system) path_attributes_hex += my_as_hex - path_attributes_hex += ( - b"\x40" - b"\x05" - b"\x04" - b"\x00\x00\x00\x64" - ) + path_attributes_hex += b"\x40" b"\x05" b"\x04" b"\x00\x00\x00\x64" if nlri_prefixes != []: - path_attributes_hex += ( - b"\x40" - b"\x03" - b"\x04" - ) + path_attributes_hex += b"\x40" b"\x03" b"\x04" next_hop_hex = struct.pack(">I", int(next_hop)) path_attributes_hex += next_hop_hex if originator_id is not None: - path_attributes_hex += ( - b"\x80" - b"\x09" - b"\x04" - ) + path_attributes_hex += b"\x80" b"\x09" b"\x04" path_attributes_hex += struct.pack(">I", int(originator_id)) if cluster_list_item is not None: - path_attributes_hex += ( - b"\x80" - b"\x0a" - b"\x04" - ) + path_attributes_hex += b"\x80" b"\x0a" b"\x04" path_attributes_hex += struct.pack(">I", int(cluster_list_item)) if self.bgpls and not end_of_rib: @@ -1554,17 +1447,12 @@ class MessageGenerator(object): mp_reach_content = ( b"\x40\x04" b"\x47" - b"\x04" - + struct.pack(">I", int(next_hop)) - + b"\x00" - + nlri + b"\x04" + struct.pack(">I", int(next_hop)) + b"\x00" + nlri ) path_attributes_hex += ( b"\x80" - b"\x0e" - + struct.pack("B", len(mp_reach_content)) - + mp_reach_content + b"\x0e" + struct.pack("B", len(mp_reach_content)) + mp_reach_content ) elif self.nlri_type == 6: @@ -1604,9 +1492,7 @@ class MessageGenerator(object): path_attributes_hex += ( b"\x80" - b"\x0e" - + struct.pack("B", len(mp_reach_content)) - + mp_reach_content + b"\x0e" + struct.pack("B", len(mp_reach_content)) + mp_reach_content ) # 5. BGP-LS Attribute (Attribute 29) @@ -1632,9 +1518,7 @@ class MessageGenerator(object): attr_29_content = tlv_1250 + tlv_1252 path_attributes_hex += ( b"\x80" - b"\x1d" - + struct.pack("B", len(attr_29_content)) - + attr_29_content + b"\x1d" + struct.pack("B", len(attr_29_content)) + attr_29_content ) total_path_attributes_length = len(path_attributes_hex) @@ -2679,4 +2563,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.91 seconds) /w/workspace/integration-test-tox-verify-master> pre-commit run --all-files --show-diff-on-failure pid=2588 pre-commit: FAIL ✖ in 46.96 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==3.0.0,setuptools==84.2.1,sh==1.14.3,six==1.17.0,tzdata==2026.5 gitlint: commands[0]> gitlint docs: OK (30.61=setup[26.49]+cmd[4.12] seconds) pre-commit: FAIL code 1 (46.95=setup[3.04]+cmd[43.91] seconds) gitlint: OK (4.66=setup[4.48]+cmd[0.18] seconds) evaluation failed :( (82.26 seconds) + tox_status=1 + echo '---> Completed tox runs' ---> Completed tox runs + for i in .tox/*/log ++ echo .tox/docs/log ++ awk -F/ '{print $2}' + tox_env=docs + cp -r .tox/docs/log /w/workspace/integration-test-tox-verify-master/archives/tox/docs + for i in .tox/*/log ++ echo .tox/gitlint/log ++ awk -F/ '{print $2}' + tox_env=gitlint + cp -r .tox/gitlint/log /w/workspace/integration-test-tox-verify-master/archives/tox/gitlint + for i in .tox/*/log ++ echo .tox/pre-commit/log ++ awk -F/ '{print $2}' + tox_env=pre-commit + cp -r .tox/pre-commit/log /w/workspace/integration-test-tox-verify-master/archives/tox/pre-commit + DOC_DIR=docs/_build/html + [[ -d docs/_build/html ]] + echo '---> Archiving generated docs' ---> Archiving generated docs + mv docs/_build/html /w/workspace/integration-test-tox-verify-master/archives/docs + echo '---> tox-run.sh ends' ---> tox-run.sh ends + test 1 -eq 0 + exit 1 ++ '[' 1 = 1 ']' ++ '[' -x /usr/bin/clear_console ']' ++ /usr/bin/clear_console -q Build step 'Execute shell' marked build as failure $ ssh-agent -k unset SSH_AUTH_SOCK; unset SSH_AGENT_PID; echo Agent pid 1529 killed; [ssh-agent] Stopped. [PostBuildScript] - [INFO] Executing post build scripts. [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins5309106017049546877.sh ---> sysstat.sh [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins14906282875183444473.sh ---> package-listing.sh + '[' -f /etc/os-release ']' + . /etc/os-release ++ PRETTY_NAME='Ubuntu 22.04.5 LTS' ++ NAME=Ubuntu ++ VERSION_ID=22.04 ++ VERSION='22.04.5 LTS (Jammy Jellyfish)' ++ VERSION_CODENAME=jammy ++ ID=ubuntu ++ ID_LIKE=debian ++ HOME_URL=https://www.ubuntu.com/ ++ SUPPORT_URL=https://help.ubuntu.com/ ++ BUG_REPORT_URL=https://bugs.launchpad.net/ubuntu/ ++ PRIVACY_POLICY_URL=https://www.ubuntu.com/legal/terms-and-policies/privacy-policy ++ UBUNTU_CODENAME=jammy + case " ${ID:-} ${ID_LIKE:-} " in + OS_FAMILY=debian + workspace=/w/workspace/integration-test-tox-verify-master + START_PACKAGES=/tmp/packages_start.txt + END_PACKAGES=/tmp/packages_end.txt + DIFF_PACKAGES=/tmp/packages_diff.txt + PACKAGES=/tmp/packages_start.txt + '[' /w/workspace/integration-test-tox-verify-master ']' + PACKAGES=/tmp/packages_end.txt + case "${OS_FAMILY}" in + dpkg -l + grep '^ii' + '[' -f /tmp/packages_start.txt ']' + '[' -f /tmp/packages_end.txt ']' + diff /tmp/packages_start.txt /tmp/packages_end.txt + '[' /w/workspace/integration-test-tox-verify-master ']' + mkdir -p /w/workspace/integration-test-tox-verify-master/archives/ + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/integration-test-tox-verify-master/archives/ + exit 0 [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins1461651541912699887.sh ---> capture-instance-metadata.sh Setup pyenv: system 3.8.20 3.9.20 3.10.15 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) lf-activate-venv(): INFO: Reuse venv:/tmp/venv-Ee2U from file:/tmp/.os_lf_venv lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) lf-activate-venv(): INFO: Installing additional packages: lftools lf-activate-venv(): INFO: Adding /tmp/venv-Ee2U/bin to PATH INFO: Running in OpenStack, capturing instance metadata [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins3699061686998880750.sh provisioning config files... Could not find credentials [logs] for integration-test-tox-verify-master #10274 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/integration-test-tox-verify-master@tmp/config13031522696139392040tmp Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] Run condition [Regular expression match] enabling perform for step [Provide Configuration files] provisioning config files... copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials [EnvInject] - Injecting environment variables from a build step. [EnvInject] - Injecting as environment variables the properties content SERVER_ID=logs [EnvInject] - Variables injected successfully. [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins11782275203226382765.sh ---> create-netrc.sh WARN: Log server credential not found. [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins3985271456327894827.sh ---> python-tools-install.sh Setup pyenv: system 3.8.20 3.9.20 3.10.15 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) lf-activate-venv(): INFO: Reuse venv:/tmp/venv-Ee2U from file:/tmp/.os_lf_venv lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) lf-activate-venv(): INFO: Installing additional packages: lftools lf-activate-venv(): INFO: Adding /tmp/venv-Ee2U/bin to PATH [integration-test-tox-verify-master] $ /bin/sh /tmp/jenkins7843688952409943847.sh ---> uv-install.sh uv 0.13.5 is already installed uvx 0.13.5 (x86_64-unknown-linux-gnu) [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins9725567271770580088.sh ---> sudo-logs.sh Archiving 'sudo' log.. [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins14349423347125148615.sh ---> job-cost.sh INFO: Activating Python virtual environment... Setup pyenv: system 3.8.20 3.9.20 3.10.15 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) lf-activate-venv(): INFO: Reuse venv:/tmp/venv-Ee2U from file:/tmp/.os_lf_venv lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) lf-activate-venv(): INFO: Installing additional packages: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. botocore 1.43.117 requires python-dateutil<3.0.0,>=2.1, but you have python-dateutil 3.0.0 which is incompatible. lf-activate-venv(): INFO: Adding /tmp/venv-Ee2U/bin to PATH INFO: No stack-cost file found INFO: Instance uptime: 253s INFO: Fetching instance metadata (attempt 1 of 3)... DEBUG: URL: http://169.254.169.254/latest/meta-data/instance-type INFO: Successfully fetched instance metadata INFO: Instance type: v3-standard-2 INFO: Retrieving pricing info for: v3-standard-2 INFO: Fetching Vexxhost pricing API (attempt 1 of 3)... DEBUG: URL: https://pricing.vexxhost.net/v1/pricing/v3-standard-2/cost?seconds=253 INFO: Successfully fetched Vexxhost pricing API INFO: Retrieved cost: 0.06 INFO: Retrieved resource: v3-standard-2 INFO: Creating archive directory: /w/workspace/integration-test-tox-verify-master/archives/cost INFO: Archiving costs to: /w/workspace/integration-test-tox-verify-master/archives/cost.csv INFO: Successfully archived job cost data DEBUG: Cost data: integration-test-tox-verify-master,10274,2026-10-22 10:30:35,v3-standard-2,253,0.06,0.00,FAILURE [integration-test-tox-verify-master] $ /bin/bash -l /tmp/jenkins10924498871552407821.sh ---> logs-deploy.sh Setup pyenv: system 3.8.20 3.9.20 3.10.15 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) lf-activate-venv(): INFO: Reuse venv:/tmp/venv-Ee2U from file:/tmp/.os_lf_venv lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) lf-activate-venv(): INFO: Installing additional packages: lftools urllib3~=1.26.15 lf-activate-venv(): INFO: Adding /tmp/venv-Ee2U/bin to PATH WARNING: Nexus logging server not set INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/integration-test-tox-verify-master/10274/ INFO: archiving logs to S3 ---> uname -a: Linux prd-ubuntu2204-builder-2c-2g-66254 5.15.0-194-generic #204-Ubuntu SMP Wed Sep 2 13:09:23 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux ---> lscpu: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 40 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 Vendor ID: AuthenticAMD Model name: AMD EPYC-Rome Processor CPU family: 23 Model: 49 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 2 Stepping: 0 BogoMIPS: 5599.99 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibrs ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero xsaveerptr wbnoinvd arat npt lbrv nrip_save tsc_scale vmcb_clean flushbyasid pausefilter pfthreshold v_vmsave_vmload vgif umip rdpid arch_capabilities Virtualization: AMD-V Hypervisor vendor: KVM Virtualization type: full L1d cache: 64 KiB (2 instances) L1i cache: 64 KiB (2 instances) L2 cache: 1 MiB (2 instances) L3 cache: 32 MiB (2 instances) NUMA node(s): 1 NUMA node0 CPU(s): 0,1 Vulnerability Gather data sampling: Not affected Vulnerability Indirect target selection: Not affected Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Mmio stale data: Not affected Vulnerability Reg file data sampling: Not affected Vulnerability Retbleed: Mitigation; untrained return thunk; SMT disabled Vulnerability Spec rstack overflow: Mitigation; SMT disabled Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected Vulnerability Srbds: Not affected Vulnerability Tsa: Not affected Vulnerability Tsx async abort: Not affected Vulnerability Vmscape: Not affected ---> nproc: 2 ---> df -h: Filesystem Size Used Avail Use% Mounted on tmpfs 794M 1.1M 793M 1% /run /dev/vda1 39G 12G 28G 30% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/vda15 105M 6.1M 99M 6% /boot/efi tmpfs 794M 4.0K 794M 1% /run/user/1001 ---> free -m: total used free shared buff/cache available Mem: 7937 543 3807 4 3587 7082 Swap: 1023 0 1023 ---> ip addr: 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 link/ether fa:16:3e:c9:ff:bd brd ff:ff:ff:ff:ff:ff altname enp0s3 inet 10.30.171.154/23 metric 100 brd 10.30.171.255 scope global dynamic ens3 valid_lft 86142sec preferred_lft 86142sec inet6 fe80::f816:3eff:fec9:ffbd/64 scope link valid_lft forever preferred_lft forever 3: docker0: mtu 1458 qdisc noqueue state DOWN group default link/ether 32:32:bd:54:95:51 brd ff:ff:ff:ff:ff:ff inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 valid_lft forever preferred_lft forever ---> sar -b -r -n DEV: Linux 5.15.0-194-generic (prd-ubuntu2204-builder-2c-2g-66254) 10/22/26 _x86_64_ (2 CPU) 10:26:32 LINUX RESTART (2 CPU) ---> sar -P ALL: Linux 5.15.0-194-generic (prd-ubuntu2204-builder-2c-2g-66254) 10/22/26 _x86_64_ (2 CPU) 10:26:32 LINUX RESTART (2 CPU)