12:14:27 Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/transportpce/+/119618 12:14:27 Running as SYSTEM 12:14:27 [EnvInject] - Loading node environment variables. 12:14:27 Building remotely on prd-ubuntu2204-docker-4c-16g-14296 (ubuntu2204-docker-4c-16g) in workspace /w/workspace/transportpce-tox-verify-transportpce-master 12:14:28 [ssh-agent] Looking for ssh-agent implementation... 12:14:28 [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) 12:14:28 $ ssh-agent 12:14:28 SSH_AUTH_SOCK=/tmp/ssh-XXXXXX2mvFNt/agent.1576 12:14:28 SSH_AGENT_PID=1578 12:14:28 [ssh-agent] Started. 12:14:28 Running ssh-add (command line suppressed) 12:14:28 Identity added: /w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_14229175050783408636.key (/w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_14229175050783408636.key) 12:14:28 [ssh-agent] Using credentials jenkins (jenkins-ssh) 12:14:28 The recommended git tool is: NONE 12:14:31 using credential jenkins-ssh 12:14:31 Wiping out workspace first. 12:14:31 Cloning the remote Git repository 12:14:31 Cloning repository git://devvexx.opendaylight.org/mirror/transportpce 12:14:31 > git init /w/workspace/transportpce-tox-verify-transportpce-master # timeout=10 12:14:31 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 12:14:31 > git --version # timeout=10 12:14:31 > git --version # 'git version 2.34.1' 12:14:31 using GIT_SSH to set credentials jenkins-ssh 12:14:31 Verifying host key using known hosts file 12:14:31 You're using 'Known hosts file' strategy to verify ssh host keys, but your known_hosts file does not exist, please go to 'Manage Jenkins' -> 'Security' -> 'Git Host Key Verification Configuration' and configure host key verification. 12:14:31 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce +refs/heads/*:refs/remotes/origin/* # timeout=10 12:14:35 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 12:14:35 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 12:14:36 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 12:14:36 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 12:14:36 using GIT_SSH to set credentials jenkins-ssh 12:14:36 Verifying host key using known hosts file 12:14:36 You're using 'Known hosts file' strategy to verify ssh host keys, but your known_hosts file does not exist, please go to 'Manage Jenkins' -> 'Security' -> 'Git Host Key Verification Configuration' and configure host key verification. 12:14:36 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce refs/changes/18/119618/10 # timeout=10 12:14:37 > git rev-parse 06792201100c651f30288d4f389c8fcca0ee3b70^{commit} # timeout=10 12:14:37 JENKINS-19022: warning: possible memory leak due to Git plugin usage; see: https://plugins.jenkins.io/git/#remove-git-plugin-buildsbybranch-builddata-script 12:14:37 Checking out Revision 06792201100c651f30288d4f389c8fcca0ee3b70 (refs/changes/18/119618/10) 12:14:37 > git config core.sparsecheckout # timeout=10 12:14:37 > git checkout -f 06792201100c651f30288d4f389c8fcca0ee3b70 # timeout=10 12:14:37 Commit message: "Reset listener state on all exit paths" 12:14:37 > git rev-parse FETCH_HEAD^{commit} # timeout=10 12:14:37 > git rev-list --no-walk 82b46fe45192b1733e55236fff75ca740937f1c9 # timeout=10 12:14:37 > git remote # timeout=10 12:14:37 > git submodule init # timeout=10 12:14:37 > git submodule sync # timeout=10 12:14:37 > git config --get remote.origin.url # timeout=10 12:14:37 > git submodule init # timeout=10 12:14:37 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 12:14:37 ERROR: No submodules found. 12:14:41 provisioning config files... 12:14:41 copy managed file [npmrc] to file:/home/jenkins/.npmrc 12:14:41 copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf 12:14:41 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins15909659383564106795.sh 12:14:41 ---> python-tools-install.sh 12:14:41 Setup pyenv: 12:14:41 * system (set by /opt/pyenv/version) 12:14:41 * 3.8.20 (set by /opt/pyenv/version) 12:14:41 * 3.9.20 (set by /opt/pyenv/version) 12:14:41 3.10.15 12:14:41 3.11.10 12:14:46 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-SiZz 12:14:46 lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv 12:14:46 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 12:14:46 lf-activate-venv(): INFO: Attempting to install with network-safe options... 12:14:50 lf-activate-venv(): INFO: Base packages installed successfully 12:14:50 lf-activate-venv(): INFO: Installing additional packages: lftools 12:15:18 lf-activate-venv(): INFO: Adding /tmp/venv-SiZz/bin to PATH 12:15:18 Generating Requirements File 12:15:38 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. 12:15:38 httplib2 0.31.0 requires pyparsing<4,>=3.0.4, but you have pyparsing 2.4.7 which is incompatible. 12:15:38 Python 3.11.10 12:15:38 pip 25.3 from /tmp/venv-SiZz/lib/python3.11/site-packages/pip (python 3.11) 12:15:39 appdirs==1.4.4 12:15:39 argcomplete==3.6.3 12:15:39 aspy.yaml==1.3.0 12:15:39 attrs==25.4.0 12:15:39 autopage==0.5.2 12:15:39 beautifulsoup4==4.14.3 12:15:39 boto3==1.42.10 12:15:39 botocore==1.42.10 12:15:39 bs4==0.0.2 12:15:39 cachetools==6.2.4 12:15:39 certifi==2025.11.12 12:15:39 cffi==2.0.0 12:15:39 cfgv==3.5.0 12:15:39 chardet==5.2.0 12:15:39 charset-normalizer==3.4.4 12:15:39 click==8.3.1 12:15:39 cliff==4.13.0 12:15:39 cmd2==3.0.0 12:15:39 cryptography==3.3.2 12:15:39 debtcollector==3.0.0 12:15:39 decorator==5.2.1 12:15:39 defusedxml==0.7.1 12:15:39 Deprecated==1.3.1 12:15:39 distlib==0.4.0 12:15:39 dnspython==2.8.0 12:15:39 docker==7.1.0 12:15:39 dogpile.cache==1.5.0 12:15:39 durationpy==0.10 12:15:39 email-validator==2.3.0 12:15:39 filelock==3.20.1 12:15:39 future==1.0.0 12:15:39 gitdb==4.0.12 12:15:39 GitPython==3.1.45 12:15:39 google-auth==2.45.0 12:15:39 httplib2==0.31.0 12:15:39 identify==2.6.15 12:15:39 idna==3.11 12:15:39 importlib-resources==1.5.0 12:15:39 iso8601==2.1.0 12:15:39 Jinja2==3.1.6 12:15:39 jmespath==1.0.1 12:15:39 jsonpatch==1.33 12:15:39 jsonpointer==3.0.0 12:15:39 jsonschema==4.25.1 12:15:39 jsonschema-specifications==2025.9.1 12:15:39 keystoneauth1==5.12.0 12:15:39 kubernetes==34.1.0 12:15:39 lftools==0.37.18 12:15:39 lxml==6.0.2 12:15:39 markdown-it-py==4.0.0 12:15:39 MarkupSafe==3.0.3 12:15:39 mdurl==0.1.2 12:15:39 msgpack==1.1.2 12:15:39 multi_key_dict==2.0.3 12:15:39 munch==4.0.0 12:15:39 netaddr==1.3.0 12:15:39 niet==1.4.2 12:15:39 nodeenv==1.9.1 12:15:39 oauth2client==4.1.3 12:15:39 oauthlib==3.3.1 12:15:39 openstacksdk==4.8.0 12:15:39 os-service-types==1.8.2 12:15:39 osc-lib==4.2.0 12:15:39 oslo.config==10.1.0 12:15:39 oslo.context==6.2.0 12:15:39 oslo.i18n==6.7.1 12:15:39 oslo.log==7.2.1 12:15:39 oslo.serialization==5.8.0 12:15:39 oslo.utils==9.2.0 12:15:39 packaging==25.0 12:15:39 pbr==7.0.3 12:15:39 platformdirs==4.5.1 12:15:39 prettytable==3.17.0 12:15:39 psutil==7.1.3 12:15:39 pyasn1==0.6.1 12:15:39 pyasn1_modules==0.4.2 12:15:39 pycparser==2.23 12:15:39 pygerrit2==2.0.15 12:15:39 PyGithub==2.8.1 12:15:39 Pygments==2.19.2 12:15:39 PyJWT==2.10.1 12:15:39 PyNaCl==1.6.1 12:15:39 pyparsing==2.4.7 12:15:39 pyperclip==1.11.0 12:15:39 pyrsistent==0.20.0 12:15:39 python-cinderclient==9.8.0 12:15:39 python-dateutil==2.9.0.post0 12:15:39 python-heatclient==4.3.0 12:15:39 python-jenkins==1.8.3 12:15:39 python-keystoneclient==5.7.0 12:15:39 python-magnumclient==4.9.0 12:15:39 python-openstackclient==8.2.0 12:15:39 python-swiftclient==4.9.0 12:15:39 PyYAML==6.0.3 12:15:39 referencing==0.37.0 12:15:39 requests==2.32.5 12:15:39 requests-oauthlib==2.0.0 12:15:39 requestsexceptions==1.4.0 12:15:39 rfc3986==2.0.0 12:15:39 rich==14.2.0 12:15:39 rich-argparse==1.7.2 12:15:39 rpds-py==0.30.0 12:15:39 rsa==4.9.1 12:15:39 ruamel.yaml==0.18.16 12:15:39 ruamel.yaml.clib==0.2.15 12:15:39 s3transfer==0.16.0 12:15:39 simplejson==3.20.2 12:15:39 six==1.17.0 12:15:39 smmap==5.0.2 12:15:39 soupsieve==2.8 12:15:39 stevedore==5.6.0 12:15:39 tabulate==0.9.0 12:15:39 toml==0.10.2 12:15:39 tomlkit==0.13.3 12:15:39 tqdm==4.67.1 12:15:39 typing_extensions==4.15.0 12:15:39 tzdata==2025.3 12:15:39 urllib3==1.26.20 12:15:39 virtualenv==20.35.4 12:15:39 wcwidth==0.2.14 12:15:39 websocket-client==1.9.0 12:15:39 wrapt==2.0.1 12:15:39 xdg==6.0.0 12:15:39 xmltodict==1.0.2 12:15:39 yq==3.4.3 12:15:39 [EnvInject] - Injecting environment variables from a build step. 12:15:39 [EnvInject] - Injecting as environment variables the properties content 12:15:39 PYTHON=python3 12:15:39 12:15:39 [EnvInject] - Variables injected successfully. 12:15:39 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins2150543193051921990.sh 12:15:39 ---> tox-install.sh 12:15:39 + source /home/jenkins/lf-env.sh 12:15:39 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 12:15:39 ++ mktemp -d /tmp/venv-XXXX 12:15:39 + lf_venv=/tmp/venv-ts4H 12:15:39 + local venv_file=/tmp/.os_lf_venv 12:15:39 + local python=python3 12:15:39 + local options 12:15:39 + local set_path=true 12:15:39 + local install_args= 12:15:39 ++ 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 12:15:39 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 12:15:39 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 12:15:39 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 12:15:39 + true 12:15:39 + case $1 in 12:15:39 + venv_file=/tmp/.toxenv 12:15:39 + shift 2 12:15:39 + true 12:15:39 + case $1 in 12:15:39 + shift 12:15:39 + break 12:15:39 + case $python in 12:15:39 + local pkg_list= 12:15:39 + [[ -d /opt/pyenv ]] 12:15:39 + echo 'Setup pyenv:' 12:15:39 Setup pyenv: 12:15:39 + export PYENV_ROOT=/opt/pyenv 12:15:39 + PYENV_ROOT=/opt/pyenv 12:15:39 + export PATH=/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:39 + PATH=/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:39 + pyenv versions 12:15:39 system 12:15:39 3.8.20 12:15:39 3.9.20 12:15:39 3.10.15 12:15:39 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 12:15:39 + command -v pyenv 12:15:39 ++ pyenv init - --no-rehash 12:15:39 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 12:15:39 for i in ${!paths[@]}; do 12:15:39 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 12:15:39 fi; done; 12:15:39 echo "${paths[*]}"'\'')" 12:15:39 export PATH="/opt/pyenv/shims:${PATH}" 12:15:39 export PYENV_SHELL=bash 12:15:39 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 12:15:39 pyenv() { 12:15:39 local command 12:15:39 command="${1:-}" 12:15:39 if [ "$#" -gt 0 ]; then 12:15:39 shift 12:15:39 fi 12:15:39 12:15:39 case "$command" in 12:15:39 rehash|shell) 12:15:39 eval "$(pyenv "sh-$command" "$@")" 12:15:39 ;; 12:15:39 *) 12:15:39 command pyenv "$command" "$@" 12:15:39 ;; 12:15:39 esac 12:15:39 }' 12:15:39 +++ bash --norc -ec 'IFS=:; paths=($PATH); 12:15:39 for i in ${!paths[@]}; do 12:15:39 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 12:15:39 fi; done; 12:15:39 echo "${paths[*]}"' 12:15:39 ++ PATH=/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:39 ++ export PATH=/opt/pyenv/shims:/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:39 ++ PATH=/opt/pyenv/shims:/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:39 ++ export PYENV_SHELL=bash 12:15:39 ++ PYENV_SHELL=bash 12:15:39 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 12:15:39 +++ complete -F _pyenv pyenv 12:15:39 ++ lf-pyver python3 12:15:39 ++ local py_version_xy=python3 12:15:39 ++ local py_version_xyz= 12:15:39 ++ pyenv versions 12:15:39 ++ local command 12:15:39 ++ sed 's/^[ *]* //' 12:15:39 ++ command=versions 12:15:39 ++ '[' 1 -gt 0 ']' 12:15:39 ++ shift 12:15:39 ++ case "$command" in 12:15:39 ++ command pyenv versions 12:15:39 ++ grep -E '^[0-9.]*[0-9]$' 12:15:39 ++ awk '{ print $1 }' 12:15:39 ++ [[ ! -s /tmp/.pyenv_versions ]] 12:15:39 +++ grep '^3' /tmp/.pyenv_versions 12:15:39 +++ sort -V 12:15:39 +++ tail -n 1 12:15:39 ++ py_version_xyz=3.11.10 12:15:39 ++ [[ -z 3.11.10 ]] 12:15:39 ++ echo 3.11.10 12:15:39 ++ return 0 12:15:39 + pyenv local 3.11.10 12:15:39 + local command 12:15:39 + command=local 12:15:39 + '[' 2 -gt 0 ']' 12:15:39 + shift 12:15:39 + case "$command" in 12:15:39 + command pyenv local 3.11.10 12:15:39 + for arg in "$@" 12:15:39 + case $arg in 12:15:39 + pkg_list+='tox ' 12:15:39 + for arg in "$@" 12:15:39 + case $arg in 12:15:39 + pkg_list+='virtualenv ' 12:15:39 + for arg in "$@" 12:15:39 + case $arg in 12:15:39 + pkg_list+='urllib3~=1.26.15 ' 12:15:39 + [[ -f /tmp/.toxenv ]] 12:15:39 + [[ ! -f /tmp/.toxenv ]] 12:15:39 + [[ -n '' ]] 12:15:39 + python3 -m venv /tmp/venv-ts4H 12:15:43 + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-ts4H' 12:15:43 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-ts4H 12:15:43 + echo /tmp/venv-ts4H 12:15:43 + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' 12:15:43 lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv 12:15:43 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 12:15:43 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 12:15:43 + local 'pip_opts=--upgrade --quiet' 12:15:43 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 12:15:43 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 12:15:43 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 12:15:43 + [[ -n '' ]] 12:15:43 + [[ -n '' ]] 12:15:43 + echo 'lf-activate-venv(): INFO: Attempting to install with network-safe options...' 12:15:43 lf-activate-venv(): INFO: Attempting to install with network-safe options... 12:15:43 + /tmp/venv-ts4H/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 12:15:47 + echo 'lf-activate-venv(): INFO: Base packages installed successfully' 12:15:47 lf-activate-venv(): INFO: Base packages installed successfully 12:15:47 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 12:15:47 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 12:15:47 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 12:15:47 + /tmp/venv-ts4H/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 12:15:49 + type python3 12:15:49 + true 12:15:49 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-ts4H/bin to PATH' 12:15:49 lf-activate-venv(): INFO: Adding /tmp/venv-ts4H/bin to PATH 12:15:49 + PATH=/tmp/venv-ts4H/bin:/opt/pyenv/shims:/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:49 + return 0 12:15:49 + python3 --version 12:15:49 Python 3.11.10 12:15:49 + python3 -m pip --version 12:15:49 pip 25.3 from /tmp/venv-ts4H/lib/python3.11/site-packages/pip (python 3.11) 12:15:49 + python3 -m pip freeze 12:15:49 cachetools==6.2.4 12:15:49 chardet==5.2.0 12:15:49 colorama==0.4.6 12:15:49 distlib==0.4.0 12:15:49 filelock==3.20.1 12:15:49 packaging==25.0 12:15:49 platformdirs==4.5.1 12:15:49 pluggy==1.6.0 12:15:49 pyproject-api==1.10.0 12:15:49 tox==4.32.0 12:15:49 urllib3==1.26.20 12:15:49 virtualenv==20.35.4 12:15:49 [transportpce-tox-verify-transportpce-master] $ /bin/sh -xe /tmp/jenkins12812931822491121276.sh 12:15:49 [EnvInject] - Injecting environment variables from a build step. 12:15:49 [EnvInject] - Injecting as environment variables the properties content 12:15:49 PARALLEL=True 12:15:49 12:15:49 [EnvInject] - Variables injected successfully. 12:15:49 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins2607414991936422559.sh 12:15:49 ---> tox-run.sh 12:15:49 + PATH=/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:49 + ARCHIVE_TOX_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 12:15:49 + ARCHIVE_DOC_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 12:15:49 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 12:15:49 + cd /w/workspace/transportpce-tox-verify-transportpce-master/. 12:15:49 + source /home/jenkins/lf-env.sh 12:15:49 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 12:15:49 ++ mktemp -d /tmp/venv-XXXX 12:15:49 + lf_venv=/tmp/venv-n8T2 12:15:49 + local venv_file=/tmp/.os_lf_venv 12:15:49 + local python=python3 12:15:49 + local options 12:15:49 + local set_path=true 12:15:49 + local install_args= 12:15:49 ++ 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 12:15:49 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 12:15:49 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 12:15:49 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 12:15:49 + true 12:15:49 + case $1 in 12:15:49 + venv_file=/tmp/.toxenv 12:15:49 + shift 2 12:15:49 + true 12:15:49 + case $1 in 12:15:49 + shift 12:15:49 + break 12:15:49 + case $python in 12:15:49 + local pkg_list= 12:15:49 + [[ -d /opt/pyenv ]] 12:15:49 + echo 'Setup pyenv:' 12:15:49 Setup pyenv: 12:15:49 + export PYENV_ROOT=/opt/pyenv 12:15:49 + PYENV_ROOT=/opt/pyenv 12:15:49 + export PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:49 + PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:49 + pyenv versions 12:15:50 system 12:15:50 3.8.20 12:15:50 3.9.20 12:15:50 3.10.15 12:15:50 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 12:15:50 + command -v pyenv 12:15:50 ++ pyenv init - --no-rehash 12:15:50 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 12:15:50 for i in ${!paths[@]}; do 12:15:50 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 12:15:50 fi; done; 12:15:50 echo "${paths[*]}"'\'')" 12:15:50 export PATH="/opt/pyenv/shims:${PATH}" 12:15:50 export PYENV_SHELL=bash 12:15:50 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 12:15:50 pyenv() { 12:15:50 local command 12:15:50 command="${1:-}" 12:15:50 if [ "$#" -gt 0 ]; then 12:15:50 shift 12:15:50 fi 12:15:50 12:15:50 case "$command" in 12:15:50 rehash|shell) 12:15:50 eval "$(pyenv "sh-$command" "$@")" 12:15:50 ;; 12:15:50 *) 12:15:50 command pyenv "$command" "$@" 12:15:50 ;; 12:15:50 esac 12:15:50 }' 12:15:50 +++ bash --norc -ec 'IFS=:; paths=($PATH); 12:15:50 for i in ${!paths[@]}; do 12:15:50 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 12:15:50 fi; done; 12:15:50 echo "${paths[*]}"' 12:15:50 ++ PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:50 ++ export PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:50 ++ PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:50 ++ export PYENV_SHELL=bash 12:15:50 ++ PYENV_SHELL=bash 12:15:50 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 12:15:50 +++ complete -F _pyenv pyenv 12:15:50 ++ lf-pyver python3 12:15:50 ++ local py_version_xy=python3 12:15:50 ++ local py_version_xyz= 12:15:50 ++ pyenv versions 12:15:50 ++ local command 12:15:50 ++ sed 's/^[ *]* //' 12:15:50 ++ command=versions 12:15:50 ++ '[' 1 -gt 0 ']' 12:15:50 ++ shift 12:15:50 ++ case "$command" in 12:15:50 ++ command pyenv versions 12:15:50 ++ grep -E '^[0-9.]*[0-9]$' 12:15:50 ++ awk '{ print $1 }' 12:15:50 ++ [[ ! -s /tmp/.pyenv_versions ]] 12:15:50 +++ grep '^3' /tmp/.pyenv_versions 12:15:50 +++ tail -n 1 12:15:50 +++ sort -V 12:15:50 ++ py_version_xyz=3.11.10 12:15:50 ++ [[ -z 3.11.10 ]] 12:15:50 ++ echo 3.11.10 12:15:50 ++ return 0 12:15:50 + pyenv local 3.11.10 12:15:50 + local command 12:15:50 + command=local 12:15:50 + '[' 2 -gt 0 ']' 12:15:50 + shift 12:15:50 + case "$command" in 12:15:50 + command pyenv local 3.11.10 12:15:50 + for arg in "$@" 12:15:50 + case $arg in 12:15:50 + pkg_list+='tox ' 12:15:50 + for arg in "$@" 12:15:50 + case $arg in 12:15:50 + pkg_list+='virtualenv ' 12:15:50 + for arg in "$@" 12:15:50 + case $arg in 12:15:50 + pkg_list+='urllib3~=1.26.15 ' 12:15:50 + [[ -f /tmp/.toxenv ]] 12:15:50 ++ cat /tmp/.toxenv 12:15:50 + lf_venv=/tmp/venv-ts4H 12:15:50 + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-ts4H from' file:/tmp/.toxenv 12:15:50 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-ts4H from file:/tmp/.toxenv 12:15:50 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 12:15:50 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 12:15:50 + local 'pip_opts=--upgrade --quiet' 12:15:50 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 12:15:50 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 12:15:50 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 12:15:50 + [[ -n '' ]] 12:15:50 + [[ -n '' ]] 12:15:50 + echo 'lf-activate-venv(): INFO: Attempting to install with network-safe options...' 12:15:50 lf-activate-venv(): INFO: Attempting to install with network-safe options... 12:15:50 + /tmp/venv-ts4H/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 12:15:51 + echo 'lf-activate-venv(): INFO: Base packages installed successfully' 12:15:51 lf-activate-venv(): INFO: Base packages installed successfully 12:15:51 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 12:15:51 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 12:15:51 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 12:15:51 + /tmp/venv-ts4H/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 12:15:52 + type python3 12:15:52 + true 12:15:52 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-ts4H/bin to PATH' 12:15:52 lf-activate-venv(): INFO: Adding /tmp/venv-ts4H/bin to PATH 12:15:52 + PATH=/tmp/venv-ts4H/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:52 + return 0 12:15:52 + [[ -d /opt/pyenv ]] 12:15:52 + echo '---> Setting up pyenv' 12:15:52 ---> Setting up pyenv 12:15:52 + export PYENV_ROOT=/opt/pyenv 12:15:52 + PYENV_ROOT=/opt/pyenv 12:15:52 + export PATH=/opt/pyenv/bin:/tmp/venv-ts4H/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:52 + PATH=/opt/pyenv/bin:/tmp/venv-ts4H/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:15:52 ++ pwd 12:15:52 + PYTHONPATH=/w/workspace/transportpce-tox-verify-transportpce-master 12:15:52 + export PYTHONPATH 12:15:52 + export TOX_TESTENV_PASSENV=PYTHONPATH 12:15:52 + TOX_TESTENV_PASSENV=PYTHONPATH 12:15:52 + tox --version 12:15:52 4.32.0 from /tmp/venv-ts4H/lib/python3.11/site-packages/tox/__init__.py 12:15:52 + PARALLEL=True 12:15:52 + TOX_OPTIONS_LIST= 12:15:52 + [[ -n '' ]] 12:15:52 + case ${PARALLEL,,} in 12:15:52 + TOX_OPTIONS_LIST=' --parallel auto --parallel-live' 12:15:52 + tox --parallel auto --parallel-live 12:15:52 + tee -a /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tox.log 12:15:54 docs: install_deps> python -I -m pip install -r docs/requirements.txt 12:15:54 docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt 12:15:54 buildcontroller: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:15:54 checkbashisms: freeze> python -m pip freeze --all 12:15:54 checkbashisms: pip==25.3,setuptools==80.9.0 12:15:54 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 12:15:54 checkbashisms: commands[1] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sh -c 'command checkbashisms>/dev/null || sudo yum install -y devscripts-checkbashisms || sudo yum install -y devscripts-minimal || sudo yum install -y devscripts || sudo yum install -y https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/31/Everything/x86_64/os/Packages/d/devscripts-checkbashisms-2.19.6-2.fc31.x86_64.rpm || (echo "checkbashisms command not found - please install it (e.g. sudo apt-get install devscripts | yum install devscripts-minimal )" >&2 && exit 1)' 12:15:54 checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + 12:15:56 checkbashisms: OK ✔ in 3.21 seconds 12:15:56 pre-commit: install_deps> python -I -m pip install pre-commit 12:15:58 pre-commit: freeze> python -m pip freeze --all 12:15:59 pre-commit: cfgv==3.5.0,distlib==0.4.0,filelock==3.20.1,identify==2.6.15,nodeenv==1.9.1,pip==25.3,platformdirs==4.5.1,pre_commit==4.5.0,PyYAML==6.0.3,setuptools==80.9.0,virtualenv==20.35.4 12:15:59 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 12:15:59 pre-commit: commands[1] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sh -c 'which cpan || sudo yum install -y perl-CPAN || (echo "cpan command not found - please install it (e.g. sudo apt-get install perl-modules | yum install perl-CPAN )" >&2 && exit 1)' 12:15:59 /usr/bin/cpan 12:15:59 pre-commit: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure 12:15:59 [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. 12:15:59 [WARNING] hook id `perltidy` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 12:15:59 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 12:15:59 [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. 12:15:59 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. 12:16:00 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. 12:16:00 [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. 12:16:00 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. 12:16:01 [INFO] Initializing environment for https://github.com/perltidy/perltidy. 12:16:01 buildcontroller: freeze> python -m pip freeze --all 12:16:01 buildcontroller: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:16:01 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh 12:16:01 + update-java-alternatives -l 12:16:01 java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 12:16:01 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 12:16:01 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 12:16:01 + sudo update-java-alternatives -s java-1.21.0-openjdk-amd64 12:16:01 update-alternatives: error: no alternatives for jaotc 12:16:01 update-alternatives: error: no alternatives for rmic 12:16:02 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 12:16:02 [INFO] Once installed this environment will be reused. 12:16:02 [INFO] This may take a few minutes... 12:16:02 + + sed -n ;s/.* version "\(.*\)\.\(.*\)\..*".*$/\1/p; 12:16:02 java -version 12:16:02 + JAVA_VER=21 12:16:02 + echo 21 12:16:02 21 12:16:02 + + sed -n ;s/javac \(.*\)\.\(.*\)\..*.*$/\1/p; 12:16:02 javac -version 12:16:02 + JAVAC_VER=21 12:16:02 + echo 21 12:16:02 + [ 21 -ge 21 ] 12:16:02 21 12:16:02 ok, java is 21 or newer 12:16:02 + [ 21 -ge 21 ] 12:16:02 + echo ok, java is 21 or newer 12:16:02 + wget -nv https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz -P /tmp 12:16:03 2025-12-16 12:16:03 URL:https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz [9160848/9160848] -> "/tmp/apache-maven-3.9.11-bin.tar.gz" [1] 12:16:03 + sudo mkdir -p /opt 12:16:03 + sudo tar xf /tmp/apache-maven-3.9.11-bin.tar.gz -C /opt 12:16:03 + sudo ln -s /opt/apache-maven-3.9.11 /opt/maven 12:16:03 + sudo ln -s /opt/maven/bin/mvn /usr/bin/mvn 12:16:03 + mvn --version 12:16:04 Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b) 12:16:04 Maven home: /opt/maven 12:16:04 Java version: 21.0.9, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 12:16:04 Default locale: en, platform encoding: UTF-8 12:16:04 OS name: "linux", version: "5.15.0-161-generic", arch: "amd64", family: "unix" 12:16:04 NOTE: Picked up JDK_JAVA_OPTIONS: 12:16:04 --add-opens=java.base/java.io=ALL-UNNAMED 12:16:04 --add-opens=java.base/java.lang=ALL-UNNAMED 12:16:04 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 12:16:04 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 12:16:04 --add-opens=java.base/java.net=ALL-UNNAMED 12:16:04 --add-opens=java.base/java.nio=ALL-UNNAMED 12:16:04 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 12:16:04 --add-opens=java.base/java.nio.file=ALL-UNNAMED 12:16:04 --add-opens=java.base/java.util=ALL-UNNAMED 12:16:04 --add-opens=java.base/java.util.jar=ALL-UNNAMED 12:16:04 --add-opens=java.base/java.util.stream=ALL-UNNAMED 12:16:04 --add-opens=java.base/java.util.zip=ALL-UNNAMED 12:16:04 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 12:16:04 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 12:16:04 -Xlog:disable 12:16:06 [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. 12:16:06 [INFO] Once installed this environment will be reused. 12:16:06 [INFO] This may take a few minutes... 12:16:14 [INFO] Installing environment for https://github.com/pre-commit/mirrors-autopep8. 12:16:14 [INFO] Once installed this environment will be reused. 12:16:14 [INFO] This may take a few minutes... 12:16:19 [INFO] Installing environment for https://github.com/perltidy/perltidy. 12:16:19 [INFO] Once installed this environment will be reused. 12:16:19 [INFO] This may take a few minutes... 12:16:21 docs: freeze> python -m pip freeze --all 12:16:21 docs: alabaster==1.0.0,attrs==25.4.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.11.12,charset-normalizer==3.4.4,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.61.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.8,numpy==2.3.5,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==4.0.0,roman-numerals-py==4.0.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.6.2,webcolors==25.10.0 12:16:21 docs: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sphinx-build -q -W --keep-going -b html -n -d /w/workspace/transportpce-tox-verify-transportpce-master/.tox/docs/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-transportpce-master/docs/_build/html 12:16:23 docs-linkcheck: freeze> python -m pip freeze --all 12:16:23 docs-linkcheck: alabaster==1.0.0,attrs==25.4.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.11.12,charset-normalizer==3.4.4,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.61.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.8,numpy==2.3.5,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==4.0.0,roman-numerals-py==4.0.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.6.2,webcolors==25.10.0 12:16:23 docs-linkcheck: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sphinx-build -q -b linkcheck -d /w/workspace/transportpce-tox-verify-transportpce-master/.tox/docs-linkcheck/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-transportpce-master/docs/_build/linkcheck 12:16:26 docs: OK ✔ in 33.07 seconds 12:16:26 pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' 12:16:29 pylint: freeze> python -m pip freeze --all 12:16:30 pylint: astroid==4.0.2,dill==0.4.0,isort==7.0.0,mccabe==0.7.0,pip==25.3,platformdirs==4.5.1,pylint==4.0.4,setuptools==80.9.0,tomlkit==0.13.3 12:16:30 pylint: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find transportpce_tests/ -name '*.py' -exec pylint --fail-under=10 --max-line-length=120 --disable=missing-docstring,import-error --disable=fixme --disable=duplicate-code '--module-rgx=([a-z0-9_]+$)|([0-9.]{1,30}$)' '--method-rgx=(([a-z_][a-zA-Z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-zA-Z][a-zA-Z0-9_]+__))$' '--variable-rgx=[a-zA-Z_][a-zA-Z0-9_]{1,30}$' '{}' + 12:16:31 trim trailing whitespace.................................................Passed 12:16:32 Tabs remover.............................................................Passed 12:16:32 autopep8.................................................................Passed 12:16:38 perltidy.................................................................Passed 12:16:38 docs-linkcheck: OK ✔ in 37.96 seconds 12:16:38 pre-commit: commands[3] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run gitlint-ci --hook-stage manual 12:16:38 [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. 12:16:38 [WARNING] hook id `perltidy` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 12:16:39 [INFO] Installing environment for https://github.com/jorisroovers/gitlint. 12:16:39 [INFO] Once installed this environment will be reused. 12:16:39 [INFO] This may take a few minutes... 12:16:50 gitlint..................................................................Failed 12:16:50 - hook id: gitlint-ci 12:16:50 - exit code: 2 12:16:50 12:16:50 4: B1 Line exceeds max length (73>72): "invoked multiple times. Ensure consistent behavior between invocations by" 12:16:50 5: B1 Line exceeds max length (73>72): "resetting the PCE/renderer listener state (input and service UUID) on all" 12:16:50 12:16:50 pre-commit: exit 1 (11.74 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run gitlint-ci --hook-stage manual pid=3408 12:16:56 12:16:56 ------------------------------------ 12:16:56 Your code has been rated at 10.00/10 12:16:56 12:18:11 pre-commit: FAIL ✖ in 54.4 seconds 12:18:11 pylint: OK ✔ in 32.39 seconds 12:18:11 buildcontroller: OK ✔ in 2 minutes 17.85 seconds 12:18:11 build_karaf_tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:18:11 build_karaf_tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:18:11 build_karaf_tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:18:11 build_karaf_tests121: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:18:18 build_karaf_tests190: freeze> python -m pip freeze --all 12:18:18 build_karaf_tests71: freeze> python -m pip freeze --all 12:18:18 build_karaf_tests121: freeze> python -m pip freeze --all 12:18:18 build_karaf_tests221: freeze> python -m pip freeze --all 12:18:18 build_karaf_tests190: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:18:18 build_karaf_tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 12:18:18 build karaf in karafoc with ./karafoc.env 12:18:18 build_karaf_tests71: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:18:18 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 12:18:18 build_karaf_tests121: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:18:18 build_karaf_tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 12:18:18 build karaf in karaf121 with ./karaf121.env 12:18:19 build karaf in karaf71 with ./karaf71.env 12:18:19 NOTE: Picked up JDK_JAVA_OPTIONS: 12:18:19 --add-opens=java.base/java.io=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.net=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio.file=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.jar=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.stream=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.zip=ALL-UNNAMED 12:18:19 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 12:18:19 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 12:18:19 -Xlog:disable 12:18:19 build_karaf_tests221: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:18:19 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 12:18:19 build karaf in karaf221 with ./karaf221.env 12:18:19 NOTE: Picked up JDK_JAVA_OPTIONS: 12:18:19 --add-opens=java.base/java.io=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.net=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio.file=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.jar=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.stream=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.zip=ALL-UNNAMED 12:18:19 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 12:18:19 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 12:18:19 -Xlog:disable 12:18:19 NOTE: Picked up JDK_JAVA_OPTIONS: 12:18:19 --add-opens=java.base/java.io=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.net=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio.file=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.jar=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.stream=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.zip=ALL-UNNAMED 12:18:19 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 12:18:19 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 12:18:19 -Xlog:disable 12:18:19 NOTE: Picked up JDK_JAVA_OPTIONS: 12:18:19 --add-opens=java.base/java.io=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.net=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.nio.file=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.jar=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.stream=ALL-UNNAMED 12:18:19 --add-opens=java.base/java.util.zip=ALL-UNNAMED 12:18:19 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 12:18:19 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 12:18:19 -Xlog:disable 12:19:19 build_karaf_tests71: OK ✔ in 1 minute 8.28 seconds 12:19:19 buildlighty: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:19:20 build_karaf_tests190: OK ✔ in 1 minute 8.73 seconds 12:19:20 sims: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:19:21 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:3.1.4:install (default-install) on project transportpce-karaf: Failed to install metadata org.opendaylight.transportpce:transportpce-karaf:13.0.0-SNAPSHOT/maven-metadata.xml: Could not read metadata /home/jenkins/.m2/repository/org/opendaylight/transportpce/transportpce-karaf/13.0.0-SNAPSHOT/maven-metadata-local.xml: input contained no data -> [Help 1] 12:19:21 [ERROR] 12:19:21 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 12:19:21 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 12:19:21 [ERROR] 12:19:21 [ERROR] For more information about the errors and possible solutions, please read the following articles: 12:19:21 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 12:19:22 build_karaf_tests221: OK ✔ in 1 minute 11.13 seconds 12:19:22 build_karaf_tests121: OK ✔ in 1 minute 11.15 seconds 12:19:22 testsPCE: install_deps> python -I -m pip install gnpy4tpce==2.4.7 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:19:28 sims: freeze> python -m pip freeze --all 12:19:28 buildlighty: freeze> python -m pip freeze --all 12:19:28 sims: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:19:28 sims: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_lightynode.sh 12:19:28 Using lighynode version 20.1.0.5 12:19:28 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory 12:19:28 buildlighty: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:19:28 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh 12:19:29 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED 12:20:15 sims: OK ✔ in 13.48 seconds 12:20:15 buildlighty: OK ✔ in 35.03 seconds 12:20:15 testsPCE: freeze> python -m pip freeze --all 12:20:15 testsPCE: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,click==8.3.1,contourpy==1.3.3,cryptography==3.3.2,cycler==0.12.1,dict2xml==1.7.7,Flask==2.1.3,Flask-Injector==0.14.0,fonttools==4.61.1,gnpy4tpce==2.4.7,idna==3.11,iniconfig==2.3.0,injector==0.23.0,invoke==2.2.1,itsdangerous==2.2.0,Jinja2==3.1.6,kiwisolver==1.4.9,lxml==6.0.2,MarkupSafe==3.0.3,matplotlib==3.10.8,netconf-client==3.5.0,networkx==2.8.8,numpy==1.26.4,packaging==25.0,pandas==1.5.3,paramiko==4.0.0,pbr==5.11.1,pillow==12.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pyparsing==3.2.5,pytest==9.0.2,python-dateutil==2.9.0.post0,pytz==2025.2,requests==2.32.5,scipy==1.16.3,setuptools==50.3.2,six==1.17.0,urllib3==2.6.2,Werkzeug==2.0.3,xlrd==1.2.0 12:20:15 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce 12:20:15 pytest -q transportpce_tests/pce/test01_pce.py 12:22:23 EFFFFFFFFFFFFFFFFFFF [100%] 12:24:05 ==================================== ERRORS ==================================== 12:24:05 _______ ERROR at setup of TestTransportPCEPce.test_01_load_port_mapping ________ 12:24:05 12:24:05 cls = 12:24:05 12:24:05 @classmethod 12:24:05 def setUpClass(cls): 12:24:05 # pylint: disable=bare-except 12:24:05 sample_files_parsed = False 12:24:05 time.sleep(20) 12:24:05 try: 12:24:05 TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 12:24:05 "..", "..", "sample_configs", "honeynode-topo.json") 12:24:05 with open(TOPO_BI_DIR_FILE, 'r', encoding='utf-8') as topo_bi_dir: 12:24:05 cls.simple_topo_bi_dir_data = topo_bi_dir.read() 12:24:05 12:24:05 TOPO_UNI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 12:24:05 "..", "..", "sample_configs", "NW-simple-topology.json") 12:24:05 12:24:05 with open(TOPO_UNI_DIR_FILE, 'r', encoding='utf-8') as topo_uni_dir: 12:24:05 cls.simple_topo_uni_dir_data = topo_uni_dir.read() 12:24:05 12:24:05 TOPO_UNI_DIR_COMPLEX_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 12:24:05 "..", "..", "sample_configs", "NW-for-test-5-4.json") 12:24:05 with open(TOPO_UNI_DIR_COMPLEX_FILE, 'r', encoding='utf-8') as topo_uni_dir_complex: 12:24:05 cls.complex_topo_uni_dir_data = topo_uni_dir_complex.read() 12:24:05 PORT_MAPPING_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 12:24:05 "..", "..", "sample_configs", "pce_portmapping_121.json") 12:24:05 with open(PORT_MAPPING_FILE, 'r', encoding='utf-8') as port_mapping: 12:24:05 cls.port_mapping_data = port_mapping.read() 12:24:05 sample_files_parsed = True 12:24:05 except PermissionError as err: 12:24:05 print("Permission Error when trying to read sample files\n", err) 12:24:05 sys.exit(2) 12:24:05 except FileNotFoundError as err: 12:24:05 print("File Not found Error when trying to read sample files\n", err) 12:24:05 sys.exit(2) 12:24:05 except: 12:24:05 print("Unexpected error when trying to read sample files\n", sys.exc_info()[0]) 12:24:05 sys.exit(2) 12:24:05 finally: 12:24:05 if sample_files_parsed: 12:24:05 print("sample files content loaded") 12:24:05 12:24:05 > cls.processes = test_utils.start_tpce() 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:93: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 def start_tpce(): 12:24:05 if 'NO_ODL_STARTUP' in os.environ: 12:24:05 print('No OpenDaylight instance to start!') 12:24:05 return [] 12:24:05 print('starting OpenDaylight...') 12:24:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 12:24:05 process = start_lighty() 12:24:05 else: 12:24:05 process = start_karaf() 12:24:05 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 12:24:05 print('OpenDaylight started !') 12:24:05 else: 12:24:05 print('OpenDaylight failed to start !') 12:24:05 shutdown_process(process) 12:24:05 for pid in process_list: 12:24:05 shutdown_process(pid) 12:24:05 > sys.exit(1) 12:24:05 E SystemExit: 1 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:232: SystemExit 12:24:05 ---------------------------- Captured stdout setup ----------------------------- 12:24:05 sample files content loaded 12:24:05 starting OpenDaylight... 12:24:05 starting KARAF (karaf) TransportPCE build... 12:24:05 Searching for patterns in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 12:24:05 =================================== FAILURES =================================== 12:24:05 _____________ TestTransportPCEPce.test_02_load_simple_topology_bi ______________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_02_load_simple_topology_bi(self): 12:24:05 response = test_utils.put_ietf_network('openroadm-topology', self.simple_topo_bi_dir_data) 12:24:05 > self.assertIn(response['status_code'], (requests.codes.ok, requests.codes.no_content)) 12:24:05 E AssertionError: 401 not found in (200, 204) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:119: AssertionError 12:24:05 ---------------------------- Captured stdout setup ----------------------------- 12:24:05 sample files content loaded 12:24:05 starting OpenDaylight... 12:24:05 starting KARAF (karaf) TransportPCE build... 12:24:05 Searching for patterns in karaf.log... Pattern found! OpenDaylight started ! 12:24:05 ____________________ TestTransportPCEPce.test_03_get_nodeId ____________________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_03_get_nodeId(self): 12:24:05 response = test_utils.get_ietf_network_node_request('openroadm-topology', 'ROADMA01-SRG1', 'config') 12:24:05 > self.assertEqual(response['status_code'], requests.codes.ok) 12:24:05 E AssertionError: 401 != 200 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:125: AssertionError 12:24:05 ____________________ TestTransportPCEPce.test_04_get_linkId ____________________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_04_get_linkId(self): 12:24:05 > response = test_utils.get_ietf_network_link_request( 12:24:05 'openroadm-topology', 'XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX', 'config') 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:131: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 network = 'openroadm-topology' 12:24:05 link = 'XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX' 12:24:05 content = 'config' 12:24:05 12:24:05 def get_ietf_network_link_request(network: str, link: str, content: str): 12:24:05 url = {'rfc8040': '{}/data/ietf-network:networks/network={}/ietf-network-topology:link={}?content={}', 12:24:05 'draft-bierman02': '{}/{}/ietf-network:networks/network/{}/ietf-network-topology:link/{}'} 12:24:05 if RESTCONF_VERSION in ('rfc8040'): 12:24:05 format_args = ('{}', network, link, content) 12:24:05 elif content == 'config': 12:24:05 format_args = ('{}', content, network, link) 12:24:05 else: 12:24:05 format_args = ('{}', 'operational', network, link) 12:24:05 response = get_request(url[RESTCONF_VERSION].format(*format_args)) 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': 'ietf-network-topology:link', 12:24:05 'draft-bierman02': 'ietf-network-topology:link'} 12:24:05 > link = res[return_key[RESTCONF_VERSION]][0] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'ietf-network-topology:link' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:602: KeyError 12:24:05 _____________ TestTransportPCEPce.test_05_path_computation_xpdr_bi _____________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_05_path_computation_xpdr_bi(self): 12:24:05 > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 12:24:05 'path-computation-request', 12:24:05 self.path_computation_input_data) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:139: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 api_module = 'transportpce-pce', rpc = 'path-computation-request' 12:24:05 payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'NodeA', 'node-id': 'XPDRA01', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 12:24:05 12:24:05 def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): 12:24:05 # pylint: disable=consider-using-f-string 12:24:05 url = "{}/operations/{}:{}".format('{}', api_module, rpc) 12:24:05 if payload is None: 12:24:05 data = None 12:24:05 elif RESTCONF_VERSION == 'draft-bierman02': 12:24:05 data = prepend_dict_keys({'input': payload}, api_module + ':') 12:24:05 else: 12:24:05 data = {'input': payload} 12:24:05 response = post_request(url, data) 12:24:05 if response.status_code == requests.codes.no_content: 12:24:05 return_output = None 12:24:05 else: 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': api_module + ':output', 12:24:05 'draft-bierman02': 'output'} 12:24:05 if response.status_code == requests.codes.internal_server_error: 12:24:05 return_output = res 12:24:05 else: 12:24:05 > return_output = res[return_key[RESTCONF_VERSION]] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'transportpce-pce:output' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:761: KeyError 12:24:05 _____________ TestTransportPCEPce.test_06_path_computation_rdm_bi ______________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_06_path_computation_rdm_bi(self): 12:24:05 self.path_computation_input_data["service-a-end"]["node-id"] = "ROADMA01" 12:24:05 self.path_computation_input_data["service-z-end"]["node-id"] = "ROADMC01" 12:24:05 > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 12:24:05 'path-computation-request', 12:24:05 self.path_computation_input_data) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:151: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 api_module = 'transportpce-pce', rpc = 'path-computation-request' 12:24:05 payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'NodeA', 'node-id': 'ROADMA01', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 12:24:05 12:24:05 def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): 12:24:05 # pylint: disable=consider-using-f-string 12:24:05 url = "{}/operations/{}:{}".format('{}', api_module, rpc) 12:24:05 if payload is None: 12:24:05 data = None 12:24:05 elif RESTCONF_VERSION == 'draft-bierman02': 12:24:05 data = prepend_dict_keys({'input': payload}, api_module + ':') 12:24:05 else: 12:24:05 data = {'input': payload} 12:24:05 response = post_request(url, data) 12:24:05 if response.status_code == requests.codes.no_content: 12:24:05 return_output = None 12:24:05 else: 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': api_module + ':output', 12:24:05 'draft-bierman02': 'output'} 12:24:05 if response.status_code == requests.codes.internal_server_error: 12:24:05 return_output = res 12:24:05 else: 12:24:05 > return_output = res[return_key[RESTCONF_VERSION]] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'transportpce-pce:output' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:761: KeyError 12:24:05 _____________ TestTransportPCEPce.test_07_load_simple_topology_uni _____________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_07_load_simple_topology_uni(self): 12:24:05 response = test_utils.put_ietf_network('openroadm-topology', self.simple_topo_uni_dir_data) 12:24:05 > self.assertIn(response['status_code'], (requests.codes.ok, requests.codes.no_content)) 12:24:05 E AssertionError: 401 not found in (200, 204) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:162: AssertionError 12:24:05 ____________________ TestTransportPCEPce.test_08_get_nodeId ____________________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_08_get_nodeId(self): 12:24:05 response = test_utils.get_ietf_network_node_request('openroadm-topology', 'XPONDER-1-2', 'config') 12:24:05 > self.assertEqual(response['status_code'], requests.codes.ok) 12:24:05 E AssertionError: 401 != 200 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:168: AssertionError 12:24:05 ____________________ TestTransportPCEPce.test_09_get_linkId ____________________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_09_get_linkId(self): 12:24:05 > response = test_utils.get_ietf_network_link_request( 12:24:05 'openroadm-topology', 'XPONDER-1-2XPDR-NW1-TX-toOpenROADM-1-2-SRG1-SRG1-PP1-RX', 'config') 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:174: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 network = 'openroadm-topology' 12:24:05 link = 'XPONDER-1-2XPDR-NW1-TX-toOpenROADM-1-2-SRG1-SRG1-PP1-RX' 12:24:05 content = 'config' 12:24:05 12:24:05 def get_ietf_network_link_request(network: str, link: str, content: str): 12:24:05 url = {'rfc8040': '{}/data/ietf-network:networks/network={}/ietf-network-topology:link={}?content={}', 12:24:05 'draft-bierman02': '{}/{}/ietf-network:networks/network/{}/ietf-network-topology:link/{}'} 12:24:05 if RESTCONF_VERSION in ('rfc8040'): 12:24:05 format_args = ('{}', network, link, content) 12:24:05 elif content == 'config': 12:24:05 format_args = ('{}', content, network, link) 12:24:05 else: 12:24:05 format_args = ('{}', 'operational', network, link) 12:24:05 response = get_request(url[RESTCONF_VERSION].format(*format_args)) 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': 'ietf-network-topology:link', 12:24:05 'draft-bierman02': 'ietf-network-topology:link'} 12:24:05 > link = res[return_key[RESTCONF_VERSION]][0] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'ietf-network-topology:link' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:602: KeyError 12:24:05 ____________ TestTransportPCEPce.test_10_path_computation_xpdr_uni _____________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_10_path_computation_xpdr_uni(self): 12:24:05 self.path_computation_input_data["service-a-end"]["node-id"] = "XPONDER-1-2" 12:24:05 self.path_computation_input_data["service-a-end"]["clli"] = "ORANGE1" 12:24:05 self.path_computation_input_data["service-z-end"]["node-id"] = "XPONDER-3-2" 12:24:05 self.path_computation_input_data["service-z-end"]["clli"] = "ORANGE3" 12:24:05 > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 12:24:05 'path-computation-request', 12:24:05 self.path_computation_input_data) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:186: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 api_module = 'transportpce-pce', rpc = 'path-computation-request' 12:24:05 payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'ORANGE1', 'node-id': 'XPONDER-1-2', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 12:24:05 12:24:05 def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): 12:24:05 # pylint: disable=consider-using-f-string 12:24:05 url = "{}/operations/{}:{}".format('{}', api_module, rpc) 12:24:05 if payload is None: 12:24:05 data = None 12:24:05 elif RESTCONF_VERSION == 'draft-bierman02': 12:24:05 data = prepend_dict_keys({'input': payload}, api_module + ':') 12:24:05 else: 12:24:05 data = {'input': payload} 12:24:05 response = post_request(url, data) 12:24:05 if response.status_code == requests.codes.no_content: 12:24:05 return_output = None 12:24:05 else: 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': api_module + ':output', 12:24:05 'draft-bierman02': 'output'} 12:24:05 if response.status_code == requests.codes.internal_server_error: 12:24:05 return_output = res 12:24:05 else: 12:24:05 > return_output = res[return_key[RESTCONF_VERSION]] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'transportpce-pce:output' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:761: KeyError 12:24:05 _____________ TestTransportPCEPce.test_11_path_computation_rdm_uni _____________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_11_path_computation_rdm_uni(self): 12:24:05 self.path_computation_input_data["service-a-end"]["node-id"] = "OpenROADM-2-1" 12:24:05 self.path_computation_input_data["service-a-end"]["clli"] = "cll21" 12:24:05 self.path_computation_input_data["service-z-end"]["node-id"] = "OpenROADM-2-2" 12:24:05 self.path_computation_input_data["service-z-end"]["clli"] = "ncli22" 12:24:05 > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 12:24:05 'path-computation-request', 12:24:05 self.path_computation_input_data) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:200: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 api_module = 'transportpce-pce', rpc = 'path-computation-request' 12:24:05 payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'cll21', 'node-id': 'OpenROADM-2-1', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 12:24:05 12:24:05 def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): 12:24:05 # pylint: disable=consider-using-f-string 12:24:05 url = "{}/operations/{}:{}".format('{}', api_module, rpc) 12:24:05 if payload is None: 12:24:05 data = None 12:24:05 elif RESTCONF_VERSION == 'draft-bierman02': 12:24:05 data = prepend_dict_keys({'input': payload}, api_module + ':') 12:24:05 else: 12:24:05 data = {'input': payload} 12:24:05 response = post_request(url, data) 12:24:05 if response.status_code == requests.codes.no_content: 12:24:05 return_output = None 12:24:05 else: 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': api_module + ':output', 12:24:05 'draft-bierman02': 'output'} 12:24:05 if response.status_code == requests.codes.internal_server_error: 12:24:05 return_output = res 12:24:05 else: 12:24:05 > return_output = res[return_key[RESTCONF_VERSION]] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'transportpce-pce:output' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:761: KeyError 12:24:05 ______________ TestTransportPCEPce.test_12_load_complex_topology _______________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_12_load_complex_topology(self): 12:24:05 response = test_utils.put_ietf_network('openroadm-topology', self.complex_topo_uni_dir_data) 12:24:05 > self.assertIn(response['status_code'], (requests.codes.ok, requests.codes.no_content)) 12:24:05 E AssertionError: 401 not found in (200, 204) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:223: AssertionError 12:24:05 ____________________ TestTransportPCEPce.test_13_get_nodeId ____________________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_13_get_nodeId(self): 12:24:05 response = test_utils.get_ietf_network_node_request('openroadm-topology', 'XPONDER-3-2', 'config') 12:24:05 > self.assertEqual(response['status_code'], requests.codes.ok) 12:24:05 E AssertionError: 401 != 200 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:229: AssertionError 12:24:05 ______________ TestTransportPCEPce.test_14_fail_path_computation _______________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_14_fail_path_computation(self): 12:24:05 del self.path_computation_input_data["service-name"] 12:24:05 del self.path_computation_input_data["service-a-end"] 12:24:05 del self.path_computation_input_data["service-z-end"] 12:24:05 > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 12:24:05 'path-computation-request', 12:24:05 self.path_computation_input_data) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:238: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 api_module = 'transportpce-pce', rpc = 'path-computation-request' 12:24:05 payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-handler-header': {'request-id': 'request1'}} 12:24:05 12:24:05 def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): 12:24:05 # pylint: disable=consider-using-f-string 12:24:05 url = "{}/operations/{}:{}".format('{}', api_module, rpc) 12:24:05 if payload is None: 12:24:05 data = None 12:24:05 elif RESTCONF_VERSION == 'draft-bierman02': 12:24:05 data = prepend_dict_keys({'input': payload}, api_module + ':') 12:24:05 else: 12:24:05 data = {'input': payload} 12:24:05 response = post_request(url, data) 12:24:05 if response.status_code == requests.codes.no_content: 12:24:05 return_output = None 12:24:05 else: 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': api_module + ':output', 12:24:05 'draft-bierman02': 'output'} 12:24:05 if response.status_code == requests.codes.internal_server_error: 12:24:05 return_output = res 12:24:05 else: 12:24:05 > return_output = res[return_key[RESTCONF_VERSION]] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'transportpce-pce:output' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:761: KeyError 12:24:05 ____________ TestTransportPCEPce.test_15_success1_path_computation _____________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_15_success1_path_computation(self): 12:24:05 self.path_computation_input_data["service-name"] = "service 1" 12:24:05 self.path_computation_input_data["service-a-end"] = {"service-format": "Ethernet", "service-rate": "100", 12:24:05 "clli": "ORANGE2", "node-id": "XPONDER-2-2"} 12:24:05 self.path_computation_input_data["service-z-end"] = {"service-format": "Ethernet", "service-rate": "100", 12:24:05 "clli": "ORANGE1", "node-id": "XPONDER-1-2"} 12:24:05 self.path_computation_input_data["hard-constraints"] = {"customer-code": ["Some customer-code"], 12:24:05 "co-routing": { 12:24:05 "service-identifier-list": [{ 12:24:05 "service-identifier": "Some existing-service"}] 12:24:05 }} 12:24:05 self.path_computation_input_data["soft-constraints"] = {"customer-code": ["Some customer-code"], 12:24:05 "co-routing": { 12:24:05 "service-identifier-list": [{ 12:24:05 "service-identifier": "Some existing-service"}] 12:24:05 }} 12:24:05 > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 12:24:05 'path-computation-request', 12:24:05 self.path_computation_input_data) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:263: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 api_module = 'transportpce-pce', rpc = 'path-computation-request' 12:24:05 payload = {'hard-constraints': {'co-routing': {'service-identifier-list': [{'service-identifier': 'Some existing-service'}]}, 'c...ervice-a-end': {'clli': 'ORANGE2', 'node-id': 'XPONDER-2-2', 'service-format': 'Ethernet', 'service-rate': '100'}, ...} 12:24:05 12:24:05 def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): 12:24:05 # pylint: disable=consider-using-f-string 12:24:05 url = "{}/operations/{}:{}".format('{}', api_module, rpc) 12:24:05 if payload is None: 12:24:05 data = None 12:24:05 elif RESTCONF_VERSION == 'draft-bierman02': 12:24:05 data = prepend_dict_keys({'input': payload}, api_module + ':') 12:24:05 else: 12:24:05 data = {'input': payload} 12:24:05 response = post_request(url, data) 12:24:05 if response.status_code == requests.codes.no_content: 12:24:05 return_output = None 12:24:05 else: 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': api_module + ':output', 12:24:05 'draft-bierman02': 'output'} 12:24:05 if response.status_code == requests.codes.internal_server_error: 12:24:05 return_output = res 12:24:05 else: 12:24:05 > return_output = res[return_key[RESTCONF_VERSION]] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'transportpce-pce:output' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:761: KeyError 12:24:05 ____________ TestTransportPCEPce.test_16_success2_path_computation _____________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_16_success2_path_computation(self): 12:24:05 self.path_computation_input_data["service-a-end"]["node-id"] = "XPONDER-1-2" 12:24:05 self.path_computation_input_data["service-a-end"]["clli"] = "ORANGE1" 12:24:05 self.path_computation_input_data["service-z-end"]["node-id"] = "XPONDER-3-2" 12:24:05 self.path_computation_input_data["service-z-end"]["clli"] = "ORANGE3" 12:24:05 del self.path_computation_input_data["hard-constraints"] 12:24:05 del self.path_computation_input_data["soft-constraints"] 12:24:05 > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 12:24:05 'path-computation-request', 12:24:05 self.path_computation_input_data) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:280: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 api_module = 'transportpce-pce', rpc = 'path-computation-request' 12:24:05 payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'ORANGE1', 'node-id': 'XPONDER-1-2', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 12:24:05 12:24:05 def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): 12:24:05 # pylint: disable=consider-using-f-string 12:24:05 url = "{}/operations/{}:{}".format('{}', api_module, rpc) 12:24:05 if payload is None: 12:24:05 data = None 12:24:05 elif RESTCONF_VERSION == 'draft-bierman02': 12:24:05 data = prepend_dict_keys({'input': payload}, api_module + ':') 12:24:05 else: 12:24:05 data = {'input': payload} 12:24:05 response = post_request(url, data) 12:24:05 if response.status_code == requests.codes.no_content: 12:24:05 return_output = None 12:24:05 else: 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': api_module + ':output', 12:24:05 'draft-bierman02': 'output'} 12:24:05 if response.status_code == requests.codes.internal_server_error: 12:24:05 return_output = res 12:24:05 else: 12:24:05 > return_output = res[return_key[RESTCONF_VERSION]] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'transportpce-pce:output' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:761: KeyError 12:24:05 ____________ TestTransportPCEPce.test_17_success3_path_computation _____________ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_17_success3_path_computation(self): 12:24:05 self.path_computation_input_data["hard-constraints"] = {"exclude": 12:24:05 {"node-id": ["OpenROADM-2-1", "OpenROADM-2-2"]}} 12:24:05 > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 12:24:05 'path-computation-request', 12:24:05 self.path_computation_input_data) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:296: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 api_module = 'transportpce-pce', rpc = 'path-computation-request' 12:24:05 payload = {'hard-constraints': {'exclude': {'node-id': ['OpenROADM-2-1', 'OpenROADM-2-2']}}, 'pce-routing-metric': 'hop-count', ...ervice-a-end': {'clli': 'ORANGE1', 'node-id': 'XPONDER-1-2', 'service-format': 'Ethernet', 'service-rate': '100'}, ...} 12:24:05 12:24:05 def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): 12:24:05 # pylint: disable=consider-using-f-string 12:24:05 url = "{}/operations/{}:{}".format('{}', api_module, rpc) 12:24:05 if payload is None: 12:24:05 data = None 12:24:05 elif RESTCONF_VERSION == 'draft-bierman02': 12:24:05 data = prepend_dict_keys({'input': payload}, api_module + ':') 12:24:05 else: 12:24:05 data = {'input': payload} 12:24:05 response = post_request(url, data) 12:24:05 if response.status_code == requests.codes.no_content: 12:24:05 return_output = None 12:24:05 else: 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': api_module + ':output', 12:24:05 'draft-bierman02': 'output'} 12:24:05 if response.status_code == requests.codes.internal_server_error: 12:24:05 return_output = res 12:24:05 else: 12:24:05 > return_output = res[return_key[RESTCONF_VERSION]] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'transportpce-pce:output' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:761: KeyError 12:24:05 __ TestTransportPCEPce.test_18_path_computation_before_oms_attribute_deletion __ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_18_path_computation_before_oms_attribute_deletion(self): 12:24:05 self.path_computation_input_data["service-a-end"]["node-id"] = "XPONDER-2-2" 12:24:05 self.path_computation_input_data["service-a-end"]["clli"] = "ORANGE2" 12:24:05 self.path_computation_input_data["service-z-end"]["node-id"] = "XPONDER-1-2" 12:24:05 self.path_computation_input_data["service-z-end"]["clli"] = "ORANGE1" 12:24:05 del self.path_computation_input_data["hard-constraints"] 12:24:05 > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 12:24:05 'path-computation-request', 12:24:05 self.path_computation_input_data) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:315: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 api_module = 'transportpce-pce', rpc = 'path-computation-request' 12:24:05 payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'ORANGE2', 'node-id': 'XPONDER-2-2', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 12:24:05 12:24:05 def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): 12:24:05 # pylint: disable=consider-using-f-string 12:24:05 url = "{}/operations/{}:{}".format('{}', api_module, rpc) 12:24:05 if payload is None: 12:24:05 data = None 12:24:05 elif RESTCONF_VERSION == 'draft-bierman02': 12:24:05 data = prepend_dict_keys({'input': payload}, api_module + ':') 12:24:05 else: 12:24:05 data = {'input': payload} 12:24:05 response = post_request(url, data) 12:24:05 if response.status_code == requests.codes.no_content: 12:24:05 return_output = None 12:24:05 else: 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': api_module + ':output', 12:24:05 'draft-bierman02': 'output'} 12:24:05 if response.status_code == requests.codes.internal_server_error: 12:24:05 return_output = res 12:24:05 else: 12:24:05 > return_output = res[return_key[RESTCONF_VERSION]] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'transportpce-pce:output' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:761: KeyError 12:24:05 _ TestTransportPCEPce.test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link _ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link(self): 12:24:05 response = test_utils.del_oms_attr_request("OpenROADM-1-3-DEG2-to-OpenROADM-1-2-DEG2") 12:24:05 > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) 12:24:05 E AssertionError: 401 not found in (200, 204) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:337: AssertionError 12:24:05 __ TestTransportPCEPce.test_20_path_computation_after_oms_attribute_deletion ___ 12:24:05 12:24:05 self = 12:24:05 12:24:05 def test_20_path_computation_after_oms_attribute_deletion(self): 12:24:05 > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 12:24:05 'path-computation-request', 12:24:05 self.path_computation_input_data) 12:24:05 12:24:05 transportpce_tests/pce/test01_pce.py:342: 12:24:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12:24:05 12:24:05 api_module = 'transportpce-pce', rpc = 'path-computation-request' 12:24:05 payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'ORANGE2', 'node-id': 'XPONDER-2-2', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 12:24:05 12:24:05 def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): 12:24:05 # pylint: disable=consider-using-f-string 12:24:05 url = "{}/operations/{}:{}".format('{}', api_module, rpc) 12:24:05 if payload is None: 12:24:05 data = None 12:24:05 elif RESTCONF_VERSION == 'draft-bierman02': 12:24:05 data = prepend_dict_keys({'input': payload}, api_module + ':') 12:24:05 else: 12:24:05 data = {'input': payload} 12:24:05 response = post_request(url, data) 12:24:05 if response.status_code == requests.codes.no_content: 12:24:05 return_output = None 12:24:05 else: 12:24:05 res = response.json() 12:24:05 return_key = {'rfc8040': api_module + ':output', 12:24:05 'draft-bierman02': 'output'} 12:24:05 if response.status_code == requests.codes.internal_server_error: 12:24:05 return_output = res 12:24:05 else: 12:24:05 > return_output = res[return_key[RESTCONF_VERSION]] 12:24:05 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:24:05 E KeyError: 'transportpce-pce:output' 12:24:05 12:24:05 transportpce_tests/common/test_utils.py:761: KeyError 12:24:05 --------------------------- Captured stdout teardown --------------------------- 12:24:05 all processes killed 12:24:05 ODL log file stored 12:24:05 =========================== short test summary info ============================ 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_02_load_simple_topology_bi 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_03_get_nodeId 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_04_get_linkId 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_05_path_computation_xpdr_bi 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_06_path_computation_rdm_bi 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_07_load_simple_topology_uni 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_08_get_nodeId 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_09_get_linkId 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_10_path_computation_xpdr_uni 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_11_path_computation_rdm_uni 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_12_load_complex_topology 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_13_get_nodeId 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_14_fail_path_computation 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_15_success1_path_computation 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_16_success2_path_computation 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_17_success3_path_computation 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_18_path_computation_before_oms_attribute_deletion 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link 12:24:05 FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_20_path_computation_after_oms_attribute_deletion 12:24:05 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_01_load_port_mapping 12:24:05 19 failed, 1 error in 229.81s (0:03:49) 12:24:05 testsPCE: exit 1 (230.13 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce pid=4983 12:24:06 testsPCE: FAIL ✖ in 4 minutes 43.86 seconds 12:24:06 tests_tapi: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:24:06 tests121: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:24:06 tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:24:22 tests190: freeze> python -m pip freeze --all 12:24:22 tests190: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:24:22 tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh oc 12:24:22 using environment variables from ./karafoc.env 12:24:22 pytest -q transportpce_tests/oc/test01_portmapping.py 12:24:23 tests_tapi: freeze> python -m pip freeze --all 12:24:23 tests121: freeze> python -m pip freeze --all 12:24:23 tests121: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:24:23 tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 12:24:23 using environment variables from ./karaf121.env 12:24:23 tests_tapi: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:24:23 pytest -q transportpce_tests/1.2.1/test01_portmapping.py 12:24:23 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi 12:24:23 using environment variables from ./karaf221.env 12:24:23 pytest -q transportpce_tests/tapi/test01_abstracted_topology.py 12:25:24 ........... [100%] 12:25:39 10 passed in 76.16s (0:01:16) 12:25:39 pytest -q transportpce_tests/oc/test02_topology.py 12:25:48 .................................. [100%] 12:26:28 21 passed in 124.31s (0:02:04) 12:26:28 pytest -q transportpce_tests/1.2.1/test02_topo_portmapping.py 12:26:29 ........................ [100%] 12:26:45 14 passed in 65.29s (0:01:05) 12:26:45 pytest -q transportpce_tests/oc/test03_renderer.py 12:26:46 .................... [100%] 12:27:31 6 passed in 62.88s (0:01:02) 12:27:31 pytest -q transportpce_tests/1.2.1/test03_topology.py 12:27:31 .................. [100%] 12:27:48 19 passed in 62.69s (0:01:02) 12:27:48 tests190: OK ✔ in 3 minutes 42.7 seconds 12:27:48 tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:27:55 .tests71: freeze> python -m pip freeze --all 12:27:56 tests71: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:27:56 tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 12:27:56 using environment variables from ./karaf71.env 12:27:56 pytest -q transportpce_tests/7.1/test01_portmapping.py 12:28:16 ............................... [100%] 12:28:51 12 passed in 54.58s 12:28:51 pytest -q transportpce_tests/7.1/test02_otn_renderer.py 12:28:51 ...................................................... [100%] 12:30:04 44 passed in 152.75s (0:02:32) 12:30:04 pytest -q transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py 12:30:06 .................................................................... [100%] 12:31:32 62 passed in 160.40s (0:02:40) 12:31:32 pytest -q transportpce_tests/7.1/test03_renderer_or_modes.py 12:31:32 . [100%] 12:31:35 24 passed in 90.17s (0:01:30) 12:31:35 pytest -q transportpce_tests/1.2.1/test05_olm.py 12:32:20 ........ [100%] 12:32:34 51 passed in 490.97s (0:08:10) 12:32:34 pytest -q transportpce_tests/tapi/test02_full_topology.py 12:32:36 ........................................................................... [100%] 12:34:06 48 passed in 153.84s (0:02:33) 12:34:06 pytest -q transportpce_tests/7.1/test04_renderer_regen_mode.py 12:34:07 ................................. [100%] 12:35:01 40 passed in 205.56s (0:03:25) 12:35:01 pytest -q transportpce_tests/1.2.1/test06_end2end.py 12:35:01 F...F......... [100%] 12:35:26 22 passed in 80.04s (0:01:20) 12:35:29 .F............F.F................................................ [100%] 12:40:59 =================================== FAILURES =================================== 12:40:59 _ TestTransportPCEFullTopology.test_18a_get_tapi_Pht_node_details_at_Pht_Service_creation _ 12:40:59 12:40:59 self = 12:40:59 12:40:59 def test_18a_get_tapi_Pht_node_details_at_Pht_Service_creation(self): 12:40:59 response = test_utils.get_tapi_topology_node( 12:40:59 test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1OTS, "nonconfig") 12:40:59 time.sleep(2) 12:40:59 self.assertEqual(response['status_code'], requests.codes.ok) 12:40:59 input_dict_1 = {"spectrum-capability-pac": {"occupied-spectrum": [{"upper-frequency": "196125000000000", 12:40:59 "lower-frequency": "196075000000000"}], 12:40:59 "supportable-spectrum": [{"upper-frequency": "196125000000000", 12:40:59 "lower-frequency": "191325000000000"}]} 12:40:59 } 12:40:59 12:40:59 self.assertDictEqual(dict(input_dict_1, 12:40:59 **response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']), 12:40:59 response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']) 12:40:59 self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'eNodeEdgePoint') 12:40:59 self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+PHOTONIC_MEDIA_OTS+XPDR1-NETWORK1') 12:40:59 self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') 12:40:59 self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') 12:40:59 self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') 12:40:59 self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '100.0') 12:40:59 self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') 12:40:59 self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '100.0') 12:40:59 self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '100.0') 12:40:59 self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] 12:40:59 ['client-node-edge-point'][0]['node-edge-point-uuid'], 'f32f5e9e-d167-31ba-a9e4-8f1efdb8786d') 12:40:59 self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] 12:40:59 ['parent-node-edge-point']['node-edge-point-uuid'], '21efd6a4-2d81-3cdb-aabb-b983fb61904e') 12:40:59 12:40:59 response = test_utils.get_tapi_topology_node( 12:40:59 test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1OTSi, "nonconfig") 12:40:59 time.sleep(2) 12:40:59 self.assertDictEqual(dict(input_dict_1, 12:40:59 **response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']), 12:40:59 response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']) 12:40:59 self.assertEqual(response['status_code'], requests.codes.ok) 12:40:59 self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'PhotMedNodeEdgePoint') 12:40:59 self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+OTSi_MEDIA_CHANNEL+XPDR1-NETWORK1') 12:40:59 self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') 12:40:59 self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') 12:40:59 self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') 12:40:59 self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '100.0') 12:40:59 self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') 12:40:59 self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '100.0') 12:40:59 self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '100.0') 12:40:59 > self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] 12:40:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:40:59 ['client-node-edge-point'][0]['node-edge-point-uuid'], '7d2a0549-63e3-3c7f-b4dc-5653e8a81dbe') 12:40:59 E KeyError: 'tapi-connectivity:cep-list' 12:40:59 12:40:59 transportpce_tests/tapi/test02_full_topology.py:428: KeyError 12:40:59 _ TestTransportPCEFullTopology.test_18b_get_tapi_OTN_node_details_at_Pht_Service_creation _ 12:40:59 12:40:59 self = 12:40:59 12:40:59 def test_18b_get_tapi_OTN_node_details_at_Pht_Service_creation(self): 12:40:59 response = test_utils.get_tapi_topology_node( 12:40:59 test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1iODU, "nonconfig") 12:40:59 time.sleep(2) 12:40:59 self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'iNodeEdgePoint_N') 12:40:59 self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+iODU+XPDR1-NETWORK1') 12:40:59 self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') 12:40:59 self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') 12:40:59 self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') 12:40:59 self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '100.0') 12:40:59 self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') 12:40:59 self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '100.0') 12:40:59 self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '100.0') 12:40:59 12:40:59 response = test_utils.get_tapi_topology_node(test_utils.T0_FULL_MULTILAYER_TOPO_UUID, 12:40:59 self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1eODUC1, 12:40:59 "nonconfig") 12:40:59 time.sleep(2) 12:40:59 self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'eNodeEdgePoint_N') 12:40:59 self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+eODU+XPDR1-CLIENT1') 12:40:59 self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') 12:40:59 self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') 12:40:59 self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') 12:40:59 self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '10.0') 12:40:59 self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') 12:40:59 self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '10.0') 12:40:59 self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '10.0') 12:40:59 > self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] 12:40:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:40:59 ['parent-node-edge-point']['node-edge-point-uuid'], '72c6b97a-3944-3d88-9882-b7e688bb2772') 12:40:59 E KeyError: 'tapi-connectivity:cep-list' 12:40:59 12:40:59 transportpce_tests/tapi/test02_full_topology.py:478: KeyError 12:40:59 _ TestTransportPCEFullTopology.test_20_get_tapi_node_details_at_ODU_Service_creation _ 12:40:59 12:40:59 self = 12:40:59 12:40:59 def test_20_get_tapi_node_details_at_ODU_Service_creation(self): 12:40:59 # ODU service creation correspond to the creation of HO-ODU between 2 Network ports and is associated an 12:40:59 # iODU4 top connection which uses 100% of underlying OTU4 12:40:59 response = test_utils.get_tapi_topology_node(test_utils.T0_FULL_MULTILAYER_TOPO_UUID, 12:40:59 self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1eODUC1, 12:40:59 "nonconfig") 12:40:59 time.sleep(2) 12:40:59 self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+eODU+XPDR1-CLIENT1') 12:40:59 self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') 12:40:59 self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') 12:40:59 self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') 12:40:59 self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '10.0') 12:40:59 self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') 12:40:59 self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '10.0') 12:40:59 self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '10.0') 12:40:59 > self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] 12:40:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 12:40:59 ['client-node-edge-point'][0]['node-edge-point-uuid'], 'c6cd334c-51a1-3995-bed3-5cf2b7445c04') 12:40:59 E KeyError: 'tapi-connectivity:cep-list' 12:40:59 12:40:59 transportpce_tests/tapi/test02_full_topology.py:545: KeyError 12:40:59 _ TestTransportPCEFullTopology.test_23_get_tapi_node_details_at_DSR_Service_creation _ 12:40:59 12:40:59 self = 12:40:59 12:40:59 def test_23_get_tapi_node_details_at_DSR_Service_creation(self): 12:40:59 12:40:59 response = test_utils.get_tapi_topology_node(test_utils.T0_FULL_MULTILAYER_TOPO_UUID, 12:40:59 self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1eODUC1, 12:40:59 "nonconfig") 12:40:59 time.sleep(2) 12:40:59 self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+eODU+XPDR1-CLIENT1') 12:40:59 self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') 12:40:59 self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') 12:40:59 > self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '0') 12:40:59 E AssertionError: '1' != '0' 12:40:59 E - 1 12:40:59 E + 0 12:40:59 12:40:59 transportpce_tests/tapi/test02_full_topology.py:663: AssertionError 12:40:59 ______ TestTransportPCEFullTopology.test_25_get_connectivity_service_list ______ 12:40:59 12:40:59 self = 12:40:59 12:40:59 def test_25_get_connectivity_service_list(self): 12:40:59 response = test_utils.transportpce_api_rpc_request( 12:40:59 'tapi-connectivity', 'get-connectivity-service-list', None) 12:40:59 self.assertEqual(response['status_code'], requests.codes.ok) 12:40:59 liste_service = response['output']['service'] 12:40:59 for ele in liste_service: 12:40:59 if ele['uuid'] == self.uuid_services.pm: 12:40:59 self.assertEqual(ele['operational-state'], 'ENABLED') 12:40:59 # self.assertEqual(ele['service-layer'], 'PHOTONIC_MEDIA') 12:40:59 self.assertEqual(ele['layer-protocol-name'], 'PHOTONIC_MEDIA') 12:40:59 nbconnection = len(ele['connection']) 12:40:59 self.assertEqual(nbconnection, 4, 'There should be 4 connections') 12:40:59 elif ele['uuid'] == self.uuid_services.odu: 12:40:59 > self.assertEqual(ele['operational-state'], 'ENABLED') 12:40:59 E AssertionError: 'DISABLED' != 'ENABLED' 12:40:59 E - DISABLED 12:40:59 E + ENABLED 12:40:59 12:40:59 transportpce_tests/tapi/test02_full_topology.py:714: AssertionError 12:40:59 =========================== short test summary info ============================ 12:40:59 FAILED transportpce_tests/tapi/test02_full_topology.py::TestTransportPCEFullTopology::test_18a_get_tapi_Pht_node_details_at_Pht_Service_creation 12:40:59 FAILED transportpce_tests/tapi/test02_full_topology.py::TestTransportPCEFullTopology::test_18b_get_tapi_OTN_node_details_at_Pht_Service_creation 12:40:59 FAILED transportpce_tests/tapi/test02_full_topology.py::TestTransportPCEFullTopology::test_20_get_tapi_node_details_at_ODU_Service_creation 12:40:59 FAILED transportpce_tests/tapi/test02_full_topology.py::TestTransportPCEFullTopology::test_23_get_tapi_node_details_at_DSR_Service_creation 12:40:59 FAILED transportpce_tests/tapi/test02_full_topology.py::TestTransportPCEFullTopology::test_25_get_connectivity_service_list 12:40:59 5 failed, 31 passed in 504.54s (0:08:24) 12:40:59 tests71: OK ✔ in 7 minutes 38.21 seconds 12:40:59 tests_tapi: exit 1 (996.13 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi pid=6217 12:40:59 tests_tapi: FAIL ✖ in 16 minutes 54.02 seconds 12:40:59 tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:41:09 tests221: freeze> python -m pip freeze --all 12:41:09 tests221: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 12:41:09 tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 12:41:09 using environment variables from ./karaf221.env 12:41:09 pytest -q transportpce_tests/2.2.1/test01_portmapping.py 12:41:44 .................................... [100%] 12:42:30 35 passed in 80.05s (0:01:20) 12:42:30 pytest -q transportpce_tests/2.2.1/test02_topo_portmapping.py 12:43:03 ...... [100%] 12:43:17 6 passed in 47.22s 12:43:17 pytest -q transportpce_tests/2.2.1/test03_topology.py 12:43:56 ..... [100%] 12:43:59 54 passed in 538.16s (0:08:58) 12:44:02 ............................................ [100%] 12:45:37 44 passed in 139.10s (0:02:19) 12:45:37 pytest -q transportpce_tests/2.2.1/test04_otn_topology.py 12:46:15 ............ [100%] 12:46:40 12 passed in 62.78s (0:01:02) 12:46:40 pytest -q transportpce_tests/2.2.1/test05_flex_grid.py 12:47:08 ................ [100%] 12:48:37 16 passed in 117.29s (0:01:57) 12:48:37 pytest -q transportpce_tests/2.2.1/test06_renderer_service_path_nominal.py 12:49:13 ............................... [100%] 12:49:20 31 passed in 42.78s 12:49:20 pytest -q transportpce_tests/2.2.1/test07_otn_renderer.py 12:49:58 .......................... [100%] 12:50:54 26 passed in 93.05s (0:01:33) 12:50:54 pytest -q transportpce_tests/2.2.1/test08_otn_sh_renderer.py 12:51:34 ...................... [100%] 12:52:38 22 passed in 104.07s (0:01:44) 12:52:38 pytest -q transportpce_tests/2.2.1/test09_olm.py 12:53:21 ........................................ [100%] 12:55:44 40 passed in 185.88s (0:03:05) 12:55:44 pytest -q transportpce_tests/2.2.1/test11_otn_end2end.py 12:56:29 ........................................................................ [ 74%] 13:02:05 ......................... [100%] 13:03:57 97 passed in 492.76s (0:08:12) 13:03:57 pytest -q transportpce_tests/2.2.1/test12_end2end.py 13:04:39 ...................................................... [100%] 13:11:26 54 passed in 448.44s (0:07:28) 13:11:26 pytest -q transportpce_tests/2.2.1/test14_otn_switch_end2end.py 13:12:22 ........................................................................ [ 71%] 13:17:30 ............................. [100%] 13:19:39 101 passed in 492.85s (0:08:12) 13:19:39 pytest -q transportpce_tests/2.2.1/test15_otn_end2end_with_intermediate_switch.py 13:20:35 ........................................................................ [ 67%] 13:26:22 ................................... [100%] 13:29:43 107 passed in 603.53s (0:10:03) 13:29:43 pytest -q transportpce_tests/2.2.1/test16_freq_end2end.py 13:30:30 ............................................. [100%] 13:33:09 45 passed in 205.25s (0:03:25) 13:33:09 tests121: OK ✔ in 19 minutes 54.05 seconds 13:33:09 tests221: OK ✔ in 52 minutes 9.39 seconds 13:33:09 tests_hybrid: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 13:33:16 tests_hybrid: freeze> python -m pip freeze --all 13:33:17 tests_hybrid: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 13:33:17 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid 13:33:17 using environment variables from ./karaf221.env 13:33:17 pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py 13:33:59 ................................................... [100%] 13:35:47 51 passed in 150.04s (0:02:30) 13:35:47 pytest -q transportpce_tests/hybrid/test02_B100G_end2end.py 13:36:32 ........................................................................ [ 66%] 13:40:53 ..................................... [100%] 13:42:59 109 passed in 432.16s (0:07:12) 13:42:59 pytest -q transportpce_tests/hybrid/test03_autonomous_reroute.py 13:43:49 ..................................................... [100%] 13:47:21 53 passed in 261.25s (0:04:21) 13:47:21 buildcontroller: OK (137.85=setup[8.74]+cmd[129.12] seconds) 13:47:21 sims: OK (13.48=setup[9.30]+cmd[4.18] seconds) 13:47:21 build_karaf_tests121: OK (71.15=setup[8.20]+cmd[62.95] seconds) 13:47:21 testsPCE: FAIL code 1 (283.86=setup[53.73]+cmd[230.13] seconds) 13:47:21 tests121: OK (1194.05=setup[17.88]+cmd[1176.16] seconds) 13:47:21 build_karaf_tests221: OK (71.13=setup[8.24]+cmd[62.89] seconds) 13:47:21 tests_tapi: FAIL code 1 (1014.02=setup[17.90]+cmd[996.13] seconds) 13:47:21 tests221: OK (3129.39=setup[9.95]+cmd[3119.43] seconds) 13:47:21 build_karaf_tests71: OK (68.28=setup[8.19]+cmd[60.09] seconds) 13:47:21 tests71: OK (458.21=setup[8.05]+cmd[450.17] seconds) 13:47:21 build_karaf_tests190: OK (68.73=setup[8.14]+cmd[60.58] seconds) 13:47:21 tests190: OK (222.70=setup[17.12]+cmd[205.59] seconds) 13:47:21 tests_hybrid: OK (852.31=setup[7.93]+cmd[844.39] seconds) 13:47:21 buildlighty: OK (35.03=setup[9.85]+cmd[25.18] seconds) 13:47:21 docs: OK (33.07=setup[28.97]+cmd[4.10] seconds) 13:47:21 docs-linkcheck: OK (37.95=setup[30.85]+cmd[7.10] seconds) 13:47:21 checkbashisms: OK (3.21=setup[1.96]+cmd[0.00,0.04,1.20] seconds) 13:47:21 pre-commit: FAIL code 1 (54.40=setup[3.10]+cmd[0.01,0.00,39.54,11.74] seconds) 13:47:21 pylint: OK (32.39=setup[4.13]+cmd[28.26] seconds) 13:47:21 evaluation failed :( (5488.63 seconds) 13:47:21 + tox_status=255 13:47:21 + echo '---> Completed tox runs' 13:47:21 ---> Completed tox runs 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/build_karaf_tests121/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=build_karaf_tests121 13:47:21 + cp -r .tox/build_karaf_tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests121 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/build_karaf_tests190/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=build_karaf_tests190 13:47:21 + cp -r .tox/build_karaf_tests190/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests190 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/build_karaf_tests221/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=build_karaf_tests221 13:47:21 + cp -r .tox/build_karaf_tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests221 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/build_karaf_tests71/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=build_karaf_tests71 13:47:21 + cp -r .tox/build_karaf_tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests71 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/buildcontroller/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=buildcontroller 13:47:21 + cp -r .tox/buildcontroller/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildcontroller 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/buildlighty/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=buildlighty 13:47:21 + cp -r .tox/buildlighty/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildlighty 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/checkbashisms/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=checkbashisms 13:47:21 + cp -r .tox/checkbashisms/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/checkbashisms 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/docs-linkcheck/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=docs-linkcheck 13:47:21 + cp -r .tox/docs-linkcheck/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs-linkcheck 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/docs/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=docs 13:47:21 + cp -r .tox/docs/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/pre-commit/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=pre-commit 13:47:21 + cp -r .tox/pre-commit/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pre-commit 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/pylint/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=pylint 13:47:21 + cp -r .tox/pylint/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pylint 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/sims/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=sims 13:47:21 + cp -r .tox/sims/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/sims 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/tests121/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=tests121 13:47:21 + cp -r .tox/tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests121 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/tests190/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=tests190 13:47:21 + cp -r .tox/tests190/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests190 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/tests221/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=tests221 13:47:21 + cp -r .tox/tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests221 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/tests71/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=tests71 13:47:21 + cp -r .tox/tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests71 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/testsPCE/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=testsPCE 13:47:21 + cp -r .tox/testsPCE/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/testsPCE 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/tests_hybrid/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=tests_hybrid 13:47:21 + cp -r .tox/tests_hybrid/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_hybrid 13:47:21 + for i in .tox/*/log 13:47:21 ++ echo .tox/tests_tapi/log 13:47:21 ++ awk -F/ '{print $2}' 13:47:21 + tox_env=tests_tapi 13:47:21 + cp -r .tox/tests_tapi/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_tapi 13:47:21 + DOC_DIR=docs/_build/html 13:47:21 + [[ -d docs/_build/html ]] 13:47:21 + echo '---> Archiving generated docs' 13:47:21 ---> Archiving generated docs 13:47:21 + mv docs/_build/html /w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 13:47:21 + echo '---> tox-run.sh ends' 13:47:21 ---> tox-run.sh ends 13:47:21 + test 255 -eq 0 13:47:21 + exit 255 13:47:21 ++ '[' 1 = 1 ']' 13:47:21 ++ '[' -x /usr/bin/clear_console ']' 13:47:21 ++ /usr/bin/clear_console -q 13:47:21 Build step 'Execute shell' marked build as failure 13:47:21 $ ssh-agent -k 13:47:21 unset SSH_AUTH_SOCK; 13:47:21 unset SSH_AGENT_PID; 13:47:21 echo Agent pid 1578 killed; 13:47:21 [ssh-agent] Stopped. 13:47:22 [PostBuildScript] - [INFO] Executing post build scripts. 13:47:22 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins4715141661938602099.sh 13:47:22 ---> sysstat.sh 13:47:22 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins4446257620692159785.sh 13:47:22 ---> package-listing.sh 13:47:22 ++ facter osfamily 13:47:22 ++ tr '[:upper:]' '[:lower:]' 13:47:22 + OS_FAMILY=debian 13:47:22 + workspace=/w/workspace/transportpce-tox-verify-transportpce-master 13:47:22 + START_PACKAGES=/tmp/packages_start.txt 13:47:22 + END_PACKAGES=/tmp/packages_end.txt 13:47:22 + DIFF_PACKAGES=/tmp/packages_diff.txt 13:47:22 + PACKAGES=/tmp/packages_start.txt 13:47:22 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 13:47:22 + PACKAGES=/tmp/packages_end.txt 13:47:22 + case "${OS_FAMILY}" in 13:47:22 + dpkg -l 13:47:22 + grep '^ii' 13:47:22 + '[' -f /tmp/packages_start.txt ']' 13:47:22 + '[' -f /tmp/packages_end.txt ']' 13:47:22 + diff /tmp/packages_start.txt /tmp/packages_end.txt 13:47:22 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 13:47:22 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 13:47:22 + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 13:47:23 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins8195055246603696840.sh 13:47:23 ---> capture-instance-metadata.sh 13:47:23 Setup pyenv: 13:47:23 system 13:47:23 3.8.20 13:47:23 3.9.20 13:47:23 3.10.15 13:47:23 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 13:47:23 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-SiZz from file:/tmp/.os_lf_venv 13:47:23 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 13:47:23 lf-activate-venv(): INFO: Attempting to install with network-safe options... 13:47:25 lf-activate-venv(): INFO: Base packages installed successfully 13:47:25 lf-activate-venv(): INFO: Installing additional packages: lftools 13:47:37 lf-activate-venv(): INFO: Adding /tmp/venv-SiZz/bin to PATH 13:47:37 INFO: Running in OpenStack, capturing instance metadata 13:47:37 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins6416237478431905442.sh 13:47:37 provisioning config files... 13:47:38 Could not find credentials [logs] for transportpce-tox-verify-transportpce-master #4126 13:47:38 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/transportpce-tox-verify-transportpce-master@tmp/config5456813452704456539tmp 13:47:38 Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] 13:47:38 Run condition [Regular expression match] enabling perform for step [Provide Configuration files] 13:47:38 provisioning config files... 13:47:38 copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials 13:47:38 [EnvInject] - Injecting environment variables from a build step. 13:47:38 [EnvInject] - Injecting as environment variables the properties content 13:47:38 SERVER_ID=logs 13:47:38 13:47:38 [EnvInject] - Variables injected successfully. 13:47:38 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins12996233843970904450.sh 13:47:38 ---> create-netrc.sh 13:47:38 WARN: Log server credential not found. 13:47:38 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins11192189132523505276.sh 13:47:38 ---> python-tools-install.sh 13:47:38 Setup pyenv: 13:47:38 system 13:47:38 3.8.20 13:47:38 3.9.20 13:47:38 3.10.15 13:47:38 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 13:47:38 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-SiZz from file:/tmp/.os_lf_venv 13:47:38 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 13:47:38 lf-activate-venv(): INFO: Attempting to install with network-safe options... 13:47:40 lf-activate-venv(): INFO: Base packages installed successfully 13:47:40 lf-activate-venv(): INFO: Installing additional packages: lftools 13:47:50 lf-activate-venv(): INFO: Adding /tmp/venv-SiZz/bin to PATH 13:47:51 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins14919117350514291407.sh 13:47:51 ---> sudo-logs.sh 13:47:51 Archiving 'sudo' log.. 13:47:51 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins15254710814568824833.sh 13:47:51 ---> job-cost.sh 13:47:51 Setup pyenv: 13:47:51 system 13:47:51 3.8.20 13:47:51 3.9.20 13:47:51 3.10.15 13:47:51 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 13:47:51 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-SiZz from file:/tmp/.os_lf_venv 13:47:51 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 13:47:51 lf-activate-venv(): INFO: Attempting to install with network-safe options... 13:47:53 lf-activate-venv(): INFO: Base packages installed successfully 13:47:53 lf-activate-venv(): INFO: Installing additional packages: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 13:48:03 lf-activate-venv(): INFO: Adding /tmp/venv-SiZz/bin to PATH 13:48:03 INFO: No Stack... 13:48:03 INFO: Retrieving Pricing Info for: v3-standard-4 13:48:03 INFO: Archiving Costs 13:48:03 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins1175248855631972542.sh 13:48:03 ---> logs-deploy.sh 13:48:03 Setup pyenv: 13:48:03 system 13:48:03 3.8.20 13:48:03 3.9.20 13:48:03 3.10.15 13:48:03 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 13:48:03 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-SiZz from file:/tmp/.os_lf_venv 13:48:03 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 13:48:03 lf-activate-venv(): INFO: Attempting to install with network-safe options... 13:48:05 lf-activate-venv(): INFO: Base packages installed successfully 13:48:05 lf-activate-venv(): INFO: Installing additional packages: lftools urllib3~=1.26.15 13:48:16 lf-activate-venv(): INFO: Adding /tmp/venv-SiZz/bin to PATH 13:48:16 WARNING: Nexus logging server not set 13:48:16 INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/transportpce-tox-verify-transportpce-master/4126/ 13:48:16 INFO: archiving logs to S3 13:48:18 ---> uname -a: 13:48:18 Linux prd-ubuntu2204-docker-4c-16g-14296 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux 13:48:18 13:48:18 13:48:18 ---> lscpu: 13:48:18 Architecture: x86_64 13:48:18 CPU op-mode(s): 32-bit, 64-bit 13:48:18 Address sizes: 40 bits physical, 48 bits virtual 13:48:18 Byte Order: Little Endian 13:48:18 CPU(s): 4 13:48:18 On-line CPU(s) list: 0-3 13:48:18 Vendor ID: AuthenticAMD 13:48:18 Model name: AMD EPYC-Rome Processor 13:48:18 CPU family: 23 13:48:18 Model: 49 13:48:18 Thread(s) per core: 1 13:48:18 Core(s) per socket: 1 13:48:18 Socket(s): 4 13:48:18 Stepping: 0 13:48:18 BogoMIPS: 5599.99 13:48:18 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 nrip_save umip rdpid arch_capabilities 13:48:18 Virtualization: AMD-V 13:48:18 Hypervisor vendor: KVM 13:48:18 Virtualization type: full 13:48:18 L1d cache: 128 KiB (4 instances) 13:48:18 L1i cache: 128 KiB (4 instances) 13:48:18 L2 cache: 2 MiB (4 instances) 13:48:18 L3 cache: 64 MiB (4 instances) 13:48:18 NUMA node(s): 1 13:48:18 NUMA node0 CPU(s): 0-3 13:48:18 Vulnerability Gather data sampling: Not affected 13:48:18 Vulnerability Indirect target selection: Not affected 13:48:18 Vulnerability Itlb multihit: Not affected 13:48:18 Vulnerability L1tf: Not affected 13:48:18 Vulnerability Mds: Not affected 13:48:18 Vulnerability Meltdown: Not affected 13:48:18 Vulnerability Mmio stale data: Not affected 13:48:18 Vulnerability Reg file data sampling: Not affected 13:48:18 Vulnerability Retbleed: Mitigation; untrained return thunk; SMT disabled 13:48:18 Vulnerability Spec rstack overflow: Mitigation; SMT disabled 13:48:18 Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp 13:48:18 Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 13:48:18 Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 13:48:18 Vulnerability Srbds: Not affected 13:48:18 Vulnerability Tsa: Not affected 13:48:18 Vulnerability Tsx async abort: Not affected 13:48:18 Vulnerability Vmscape: Not affected 13:48:18 13:48:18 13:48:18 ---> nproc: 13:48:18 4 13:48:18 13:48:18 13:48:18 ---> df -h: 13:48:18 Filesystem Size Used Avail Use% Mounted on 13:48:18 tmpfs 1.6G 1.1M 1.6G 1% /run 13:48:18 /dev/vda1 78G 18G 61G 23% / 13:48:18 tmpfs 7.9G 0 7.9G 0% /dev/shm 13:48:18 tmpfs 5.0M 0 5.0M 0% /run/lock 13:48:18 /dev/vda15 105M 6.1M 99M 6% /boot/efi 13:48:18 tmpfs 1.6G 4.0K 1.6G 1% /run/user/1001 13:48:18 13:48:18 13:48:18 ---> free -m: 13:48:18 total used free shared buff/cache available 13:48:18 Mem: 15989 712 10854 4 4422 14933 13:48:18 Swap: 1023 1 1022 13:48:18 13:48:18 13:48:18 ---> ip addr: 13:48:18 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 13:48:18 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 13:48:18 inet 127.0.0.1/8 scope host lo 13:48:18 valid_lft forever preferred_lft forever 13:48:18 inet6 ::1/128 scope host 13:48:18 valid_lft forever preferred_lft forever 13:48:18 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 13:48:18 link/ether fa:16:3e:fc:5c:ef brd ff:ff:ff:ff:ff:ff 13:48:18 altname enp0s3 13:48:18 inet 10.30.171.152/23 metric 100 brd 10.30.171.255 scope global dynamic ens3 13:48:18 valid_lft 80736sec preferred_lft 80736sec 13:48:18 inet6 fe80::f816:3eff:fefc:5cef/64 scope link 13:48:18 valid_lft forever preferred_lft forever 13:48:18 3: docker0: mtu 1458 qdisc noqueue state DOWN group default 13:48:18 link/ether 22:9c:1f:eb:b7:c7 brd ff:ff:ff:ff:ff:ff 13:48:18 inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 13:48:18 valid_lft forever preferred_lft forever 13:48:18 13:48:18 13:48:18 ---> sar -b -r -n DEV: 13:48:18 Linux 5.15.0-161-generic (prd-ubuntu2204-docker-4c-16g-14296) 12/16/25 _x86_64_ (4 CPU) 13:48:18 13:48:18 12:13:55 LINUX RESTART (4 CPU) 13:48:18 13:48:18 12:20:36 tps rtps wtps dtps bread/s bwrtn/s bdscd/s 13:48:18 12:30:02 73.48 24.09 46.36 3.02 368.90 7405.88 3605.49 13:48:18 12:40:02 17.43 1.64 14.99 0.79 20.08 395.25 453.26 13:48:18 12:50:01 34.66 0.18 19.02 15.46 11.94 747.14 210904.58 13:48:18 13:00:32 19.86 11.50 8.03 0.32 136.89 214.52 148.87 13:48:18 13:10:03 4.59 0.01 4.42 0.16 0.34 116.71 84.75 13:48:18 13:20:19 6.15 0.02 5.88 0.24 2.17 189.19 110.76 13:48:18 13:30:32 5.19 0.00 4.98 0.21 0.13 136.78 60.13 13:48:18 13:40:32 9.33 0.08 8.90 0.35 2.40 524.81 291.45 13:48:18 Average: 20.96 4.60 13.81 2.55 66.17 1165.90 26902.05 13:48:18 13:48:18 12:20:36 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 13:48:18 12:30:02 160808 3633024 12296600 75.10 263088 3186996 13372008 76.76 2059052 13555836 376 13:48:18 12:40:02 3578700 7061532 8870180 54.18 265936 3195116 9535448 54.73 2111784 10097728 372 13:48:18 12:50:01 10071548 13681452 2255240 13.77 271276 3316612 2999968 17.22 2170844 3569532 172 13:48:18 13:00:32 7640996 11328572 4606424 28.13 277160 3376852 5262920 30.21 2214460 5930624 212 13:48:18 13:10:03 7655592 11355492 4579496 27.97 277832 3388500 5288748 30.36 2215608 5924864 268 13:48:18 13:20:19 8323132 12049448 3886212 23.74 278552 3414144 5537292 31.78 2220640 5256232 256 13:48:18 13:30:32 8239312 11982224 3953512 24.15 279336 3429956 4961216 28.48 2222776 5333536 244 13:48:18 13:40:32 7352912 11212856 4722192 28.84 283008 3537148 5370256 30.83 2237224 6199448 128 13:48:18 Average: 6627875 10288075 5646232 34.48 274524 3355666 6540982 37.55 2181548 6983475 254 13:48:18 13:48:18 12:20:36 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 13:48:18 12:30:02 lo 20.62 20.62 17.05 17.05 0.00 0.00 0.00 0.00 13:48:18 12:30:02 ens3 2.19 2.26 0.75 0.69 0.00 0.00 0.00 0.00 13:48:18 12:30:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 13:48:18 12:40:02 lo 40.26 40.26 16.90 16.90 0.00 0.00 0.00 0.00 13:48:18 12:40:02 ens3 1.55 1.72 0.34 1.33 0.00 0.00 0.00 0.00 13:48:18 12:40:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 13:48:18 12:50:01 lo 18.48 18.48 7.75 7.75 0.00 0.00 0.00 0.00 13:48:18 12:50:01 ens3 1.13 1.09 0.33 0.30 0.00 0.00 0.00 0.00 13:48:18 12:50:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 13:48:18 13:00:32 lo 19.18 19.18 10.11 10.11 0.00 0.00 0.00 0.00 13:48:18 13:00:32 ens3 0.98 0.92 0.26 0.21 0.00 0.00 0.00 0.00 13:48:18 13:00:32 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 13:48:18 13:10:03 lo 25.21 25.21 9.26 9.26 0.00 0.00 0.00 0.00 13:48:18 13:10:03 ens3 0.67 0.45 0.16 0.11 0.00 0.00 0.00 0.00 13:48:18 13:10:03 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 13:48:18 13:20:19 lo 22.44 22.44 10.35 10.35 0.00 0.00 0.00 0.00 13:48:18 13:20:19 ens3 0.72 0.54 0.17 0.13 0.00 0.00 0.00 0.00 13:48:18 13:20:19 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 13:48:18 13:30:32 lo 17.62 17.62 10.78 10.78 0.00 0.00 0.00 0.00 13:48:18 13:30:32 ens3 0.76 0.66 0.22 0.17 0.00 0.00 0.00 0.00 13:48:18 13:30:32 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 13:48:18 13:40:32 lo 19.31 19.31 10.06 10.06 0.00 0.00 0.00 0.00 13:48:18 13:40:32 ens3 1.21 1.03 0.36 0.29 0.00 0.00 0.00 0.00 13:48:18 13:40:32 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 13:48:18 Average: lo 22.85 22.85 11.49 11.49 0.00 0.00 0.00 0.00 13:48:18 Average: ens3 1.14 1.08 0.32 0.40 0.00 0.00 0.00 0.00 13:48:18 Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 13:48:18 13:48:18 13:48:18 ---> sar -P ALL: 13:48:18 Linux 5.15.0-161-generic (prd-ubuntu2204-docker-4c-16g-14296) 12/16/25 _x86_64_ (4 CPU) 13:48:18 13:48:18 12:13:55 LINUX RESTART (4 CPU) 13:48:18 13:48:18 12:20:36 CPU %user %nice %system %iowait %steal %idle 13:48:18 12:30:02 all 48.06 0.00 1.96 14.18 0.12 35.68 13:48:18 12:30:02 0 47.86 0.00 1.90 14.68 0.12 35.44 13:48:18 12:30:02 1 47.91 0.00 2.04 18.71 0.13 31.21 13:48:18 12:30:02 2 48.49 0.00 1.95 11.98 0.12 37.46 13:48:18 12:30:02 3 47.97 0.00 1.94 11.34 0.13 38.62 13:48:18 12:40:02 all 34.17 0.00 1.54 0.57 0.12 63.60 13:48:18 12:40:02 0 34.21 0.00 1.51 0.29 0.12 63.86 13:48:18 12:40:02 1 34.46 0.00 1.57 0.85 0.12 62.99 13:48:18 12:40:02 2 33.94 0.00 1.43 0.24 0.12 64.26 13:48:18 12:40:02 3 34.06 0.00 1.63 0.89 0.12 63.30 13:48:18 12:50:01 all 29.20 0.00 1.15 1.20 0.11 68.34 13:48:18 12:50:01 0 29.53 0.00 1.07 2.48 0.11 66.82 13:48:18 12:50:01 1 29.48 0.00 1.11 1.11 0.09 68.21 13:48:18 12:50:01 2 28.92 0.00 1.20 0.57 0.11 69.20 13:48:18 12:50:01 3 28.88 0.00 1.22 0.64 0.12 69.14 13:48:18 13:00:32 all 17.57 0.08 0.69 0.64 0.08 80.94 13:48:18 13:00:32 0 17.85 0.30 0.75 1.07 0.08 79.95 13:48:18 13:00:32 1 17.49 0.00 0.61 0.18 0.09 81.62 13:48:18 13:00:32 2 17.34 0.00 0.64 0.27 0.08 81.66 13:48:18 13:00:32 3 17.60 0.00 0.74 1.05 0.07 80.54 13:48:18 13:10:03 all 8.65 0.00 0.49 0.03 0.07 90.77 13:48:18 13:10:03 0 8.72 0.00 0.52 0.01 0.07 90.67 13:48:18 13:10:03 1 8.69 0.00 0.51 0.02 0.07 90.72 13:48:18 13:10:03 2 8.44 0.00 0.50 0.07 0.07 90.93 13:48:18 13:10:03 3 8.74 0.00 0.43 0.01 0.06 90.76 13:48:18 13:20:19 all 14.12 0.00 0.62 0.02 0.08 85.17 13:48:18 13:20:19 0 14.23 0.00 0.65 0.02 0.07 85.03 13:48:18 13:20:19 1 13.74 0.00 0.65 0.02 0.08 85.51 13:48:18 13:20:19 2 14.45 0.00 0.69 0.02 0.08 84.76 13:48:18 13:20:19 3 14.06 0.00 0.48 0.01 0.07 85.38 13:48:18 13:30:32 all 10.18 0.00 0.43 0.21 0.09 89.09 13:48:18 13:30:32 0 9.77 0.00 0.39 0.28 0.07 89.49 13:48:18 13:30:32 1 10.73 0.00 0.45 0.10 0.10 88.63 13:48:18 13:30:32 2 10.00 0.00 0.48 0.09 0.09 89.35 13:48:18 13:30:32 3 10.23 0.00 0.43 0.35 0.09 88.90 13:48:18 13:40:32 all 15.58 0.00 0.62 0.24 0.09 83.46 13:48:18 13:40:32 0 15.08 0.00 0.53 0.16 0.07 84.17 13:48:18 13:40:32 1 15.93 0.00 0.54 0.17 0.08 83.27 13:48:18 13:40:32 2 15.65 0.00 0.64 0.26 0.10 83.36 13:48:18 13:40:32 3 15.67 0.00 0.78 0.39 0.10 83.06 13:48:18 Average: all 21.98 0.01 0.93 2.04 0.09 74.95 13:48:18 Average: 0 21.95 0.04 0.91 2.28 0.09 74.74 13:48:18 Average: 1 22.09 0.00 0.93 2.51 0.09 74.38 13:48:18 Average: 2 21.94 0.00 0.93 1.60 0.10 75.43 13:48:18 Average: 3 21.94 0.00 0.95 1.76 0.09 75.26 13:48:18 13:48:18 13:48:18