10:07:10 Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/transportpce/+/109388 10:07:10 Running as SYSTEM 10:07:10 [EnvInject] - Loading node environment variables. 10:07:10 Building remotely on prd-ubuntu2204-docker-4c-16g-51902 (ubuntu2204-docker-4c-16g) in workspace /w/workspace/transportpce-tox-verify-transportpce-master 10:07:10 [ssh-agent] Looking for ssh-agent implementation... 10:07:10 [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) 10:07:10 $ ssh-agent 10:07:10 SSH_AUTH_SOCK=/tmp/ssh-XXXXXXZTAVSX/agent.1568 10:07:10 SSH_AGENT_PID=1570 10:07:10 [ssh-agent] Started. 10:07:10 Running ssh-add (command line suppressed) 10:07:10 Identity added: /w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_11432116528707783908.key (/w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_11432116528707783908.key) 10:07:10 [ssh-agent] Using credentials jenkins (jenkins-ssh) 10:07:10 The recommended git tool is: NONE 10:07:13 using credential jenkins-ssh 10:07:13 Wiping out workspace first. 10:07:13 Cloning the remote Git repository 10:07:13 Cloning repository git://devvexx.opendaylight.org/mirror/transportpce 10:07:13 > git init /w/workspace/transportpce-tox-verify-transportpce-master # timeout=10 10:07:13 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 10:07:13 > git --version # timeout=10 10:07:13 > git --version # 'git version 2.34.1' 10:07:13 using GIT_SSH to set credentials jenkins-ssh 10:07:13 Verifying host key using known hosts file 10:07:13 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. 10:07:13 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce +refs/heads/*:refs/remotes/origin/* # timeout=10 10:07:16 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 10:07:16 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 10:07:17 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 10:07:17 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 10:07:17 using GIT_SSH to set credentials jenkins-ssh 10:07:17 Verifying host key using known hosts file 10:07:17 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. 10:07:17 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce refs/changes/88/109388/25 # timeout=10 10:07:17 > git rev-parse 396cb0b84ac2c842b052cc0f320de758e261bfb0^{commit} # timeout=10 10:07:17 JENKINS-19022: warning: possible memory leak due to Git plugin usage; see: https://plugins.jenkins.io/git/#remove-git-plugin-buildsbybranch-builddata-script 10:07:17 Checking out Revision 396cb0b84ac2c842b052cc0f320de758e261bfb0 (refs/changes/88/109388/25) 10:07:17 > git config core.sparsecheckout # timeout=10 10:07:17 > git checkout -f 396cb0b84ac2c842b052cc0f320de758e261bfb0 # timeout=10 10:07:17 Commit message: "Save SRG information during device mount" 10:07:17 > git rev-parse FETCH_HEAD^{commit} # timeout=10 10:07:17 > git rev-list --no-walk ebc647b5d267acc5a8cc4220b78c07f9757fef44 # timeout=10 10:07:17 > git remote # timeout=10 10:07:17 > git submodule init # timeout=10 10:07:17 > git submodule sync # timeout=10 10:07:17 > git config --get remote.origin.url # timeout=10 10:07:17 > git submodule init # timeout=10 10:07:17 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 10:07:17 ERROR: No submodules found. 10:07:21 provisioning config files... 10:07:21 copy managed file [npmrc] to file:/home/jenkins/.npmrc 10:07:21 copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf 10:07:21 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins10669892874915896897.sh 10:07:21 ---> python-tools-install.sh 10:07:21 Setup pyenv: 10:07:21 * system (set by /opt/pyenv/version) 10:07:21 * 3.8.20 (set by /opt/pyenv/version) 10:07:21 * 3.9.20 (set by /opt/pyenv/version) 10:07:21 * 3.10.15 (set by /opt/pyenv/version) 10:07:21 * 3.11.10 (set by /opt/pyenv/version) 10:07:25 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-QxZg 10:07:25 lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv 10:07:30 lf-activate-venv(): INFO: Installing: lftools 10:07:57 lf-activate-venv(): INFO: Adding /tmp/venv-QxZg/bin to PATH 10:07:57 Generating Requirements File 10:08:19 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. 10:08:19 httplib2 0.31.0 requires pyparsing<4,>=3.0.4, but you have pyparsing 2.4.7 which is incompatible. 10:08:19 Python 3.11.10 10:08:20 pip 25.2 from /tmp/venv-QxZg/lib/python3.11/site-packages/pip (python 3.11) 10:08:20 appdirs==1.4.4 10:08:20 argcomplete==3.6.2 10:08:20 aspy.yaml==1.3.0 10:08:20 attrs==25.3.0 10:08:20 autopage==0.5.2 10:08:20 beautifulsoup4==4.13.5 10:08:20 boto3==1.40.29 10:08:20 botocore==1.40.29 10:08:20 bs4==0.0.2 10:08:20 cachetools==5.5.2 10:08:20 certifi==2025.8.3 10:08:20 cffi==2.0.0 10:08:20 cfgv==3.4.0 10:08:20 chardet==5.2.0 10:08:20 charset-normalizer==3.4.3 10:08:20 click==8.2.1 10:08:20 cliff==4.11.0 10:08:20 cmd2==2.7.0 10:08:20 cryptography==3.3.2 10:08:20 debtcollector==3.0.0 10:08:20 decorator==5.2.1 10:08:20 defusedxml==0.7.1 10:08:20 Deprecated==1.2.18 10:08:20 distlib==0.4.0 10:08:20 dnspython==2.8.0 10:08:20 docker==7.1.0 10:08:20 dogpile.cache==1.4.0 10:08:20 durationpy==0.10 10:08:20 email-validator==2.3.0 10:08:20 filelock==3.19.1 10:08:20 future==1.0.0 10:08:20 gitdb==4.0.12 10:08:20 GitPython==3.1.45 10:08:20 google-auth==2.40.3 10:08:20 httplib2==0.31.0 10:08:20 identify==2.6.14 10:08:20 idna==3.10 10:08:20 importlib-resources==1.5.0 10:08:20 iso8601==2.1.0 10:08:20 Jinja2==3.1.6 10:08:20 jmespath==1.0.1 10:08:20 jsonpatch==1.33 10:08:20 jsonpointer==3.0.0 10:08:20 jsonschema==4.25.1 10:08:20 jsonschema-specifications==2025.9.1 10:08:20 keystoneauth1==5.12.0 10:08:20 kubernetes==33.1.0 10:08:20 lftools==0.37.13 10:08:20 lxml==6.0.1 10:08:20 markdown-it-py==4.0.0 10:08:20 MarkupSafe==3.0.2 10:08:20 mdurl==0.1.2 10:08:20 msgpack==1.1.1 10:08:20 multi_key_dict==2.0.3 10:08:20 munch==4.0.0 10:08:20 netaddr==1.3.0 10:08:20 niet==1.4.2 10:08:20 nodeenv==1.9.1 10:08:20 oauth2client==4.1.3 10:08:20 oauthlib==3.3.1 10:08:20 openstacksdk==4.7.1 10:08:20 os-service-types==1.8.0 10:08:20 osc-lib==4.2.0 10:08:20 oslo.config==10.0.0 10:08:20 oslo.context==6.1.0 10:08:20 oslo.i18n==6.6.0 10:08:20 oslo.log==7.2.1 10:08:20 oslo.serialization==5.8.0 10:08:20 oslo.utils==9.1.0 10:08:20 packaging==25.0 10:08:20 pbr==7.0.1 10:08:20 platformdirs==4.4.0 10:08:20 prettytable==3.16.0 10:08:20 psutil==7.0.0 10:08:20 pyasn1==0.6.1 10:08:20 pyasn1_modules==0.4.2 10:08:20 pycparser==2.23 10:08:20 pygerrit2==2.0.15 10:08:20 PyGithub==2.8.1 10:08:20 Pygments==2.19.2 10:08:20 PyJWT==2.10.1 10:08:20 PyNaCl==1.6.0 10:08:20 pyparsing==2.4.7 10:08:20 pyperclip==1.9.0 10:08:20 pyrsistent==0.20.0 10:08:20 python-cinderclient==9.8.0 10:08:20 python-dateutil==2.9.0.post0 10:08:20 python-heatclient==4.3.0 10:08:20 python-jenkins==1.8.3 10:08:20 python-keystoneclient==5.7.0 10:08:20 python-magnumclient==4.9.0 10:08:20 python-openstackclient==8.2.0 10:08:20 python-swiftclient==4.8.0 10:08:20 PyYAML==6.0.2 10:08:20 referencing==0.36.2 10:08:20 requests==2.32.5 10:08:20 requests-oauthlib==2.0.0 10:08:20 requestsexceptions==1.4.0 10:08:20 rfc3986==2.0.0 10:08:20 rich==14.1.0 10:08:20 rich-argparse==1.7.1 10:08:20 rpds-py==0.27.1 10:08:20 rsa==4.9.1 10:08:20 ruamel.yaml==0.18.15 10:08:20 ruamel.yaml.clib==0.2.12 10:08:20 s3transfer==0.14.0 10:08:20 simplejson==3.20.1 10:08:20 six==1.17.0 10:08:20 smmap==5.0.2 10:08:20 soupsieve==2.8 10:08:20 stevedore==5.5.0 10:08:20 tabulate==0.9.0 10:08:20 toml==0.10.2 10:08:20 tomlkit==0.13.3 10:08:20 tqdm==4.67.1 10:08:20 typing_extensions==4.15.0 10:08:20 tzdata==2025.2 10:08:20 urllib3==1.26.20 10:08:20 virtualenv==20.34.0 10:08:20 wcwidth==0.2.13 10:08:20 websocket-client==1.8.0 10:08:20 wrapt==1.17.3 10:08:20 xdg==6.0.0 10:08:20 xmltodict==0.15.1 10:08:20 yq==3.4.3 10:08:20 [EnvInject] - Injecting environment variables from a build step. 10:08:20 [EnvInject] - Injecting as environment variables the properties content 10:08:20 PYTHON=python3 10:08:20 10:08:20 [EnvInject] - Variables injected successfully. 10:08:20 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins15986164323143471014.sh 10:08:20 ---> tox-install.sh 10:08:20 + source /home/jenkins/lf-env.sh 10:08:20 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 10:08:20 ++ mktemp -d /tmp/venv-XXXX 10:08:20 + lf_venv=/tmp/venv-6U5k 10:08:20 + local venv_file=/tmp/.os_lf_venv 10:08:20 + local python=python3 10:08:20 + local options 10:08:20 + local set_path=true 10:08:20 + local install_args= 10:08:20 ++ 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 10:08:20 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 10:08:20 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 10:08:20 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 10:08:20 + true 10:08:20 + case $1 in 10:08:20 + venv_file=/tmp/.toxenv 10:08:20 + shift 2 10:08:20 + true 10:08:20 + case $1 in 10:08:20 + shift 10:08:20 + break 10:08:20 + case $python in 10:08:20 + local pkg_list= 10:08:20 + [[ -d /opt/pyenv ]] 10:08:20 + echo 'Setup pyenv:' 10:08:20 Setup pyenv: 10:08:20 + export PYENV_ROOT=/opt/pyenv 10:08:20 + PYENV_ROOT=/opt/pyenv 10:08:20 + 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 10:08:20 + 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 10:08:20 + pyenv versions 10:08:20 system 10:08:20 3.8.20 10:08:20 3.9.20 10:08:20 3.10.15 10:08:20 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:08:20 + command -v pyenv 10:08:20 ++ pyenv init - --no-rehash 10:08:20 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 10:08:20 for i in ${!paths[@]}; do 10:08:20 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 10:08:20 fi; done; 10:08:20 echo "${paths[*]}"'\'')" 10:08:20 export PATH="/opt/pyenv/shims:${PATH}" 10:08:20 export PYENV_SHELL=bash 10:08:20 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 10:08:20 pyenv() { 10:08:20 local command 10:08:20 command="${1:-}" 10:08:20 if [ "$#" -gt 0 ]; then 10:08:20 shift 10:08:20 fi 10:08:20 10:08:20 case "$command" in 10:08:20 rehash|shell) 10:08:20 eval "$(pyenv "sh-$command" "$@")" 10:08:20 ;; 10:08:20 *) 10:08:20 command pyenv "$command" "$@" 10:08:20 ;; 10:08:20 esac 10:08:20 }' 10:08:20 +++ bash --norc -ec 'IFS=:; paths=($PATH); 10:08:20 for i in ${!paths[@]}; do 10:08:20 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 10:08:20 fi; done; 10:08:20 echo "${paths[*]}"' 10:08:20 ++ 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 10:08:20 ++ 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 10:08:20 ++ 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 10:08:20 ++ export PYENV_SHELL=bash 10:08:20 ++ PYENV_SHELL=bash 10:08:20 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 10:08:20 +++ complete -F _pyenv pyenv 10:08:20 ++ lf-pyver python3 10:08:20 ++ local py_version_xy=python3 10:08:20 ++ local py_version_xyz= 10:08:20 ++ pyenv versions 10:08:20 ++ local command 10:08:20 ++ command=versions 10:08:20 ++ '[' 1 -gt 0 ']' 10:08:20 ++ shift 10:08:20 ++ case "$command" in 10:08:20 ++ command pyenv versions 10:08:20 ++ sed 's/^[ *]* //' 10:08:20 ++ awk '{ print $1 }' 10:08:20 ++ grep -E '^[0-9.]*[0-9]$' 10:08:20 ++ [[ ! -s /tmp/.pyenv_versions ]] 10:08:20 +++ grep '^3' /tmp/.pyenv_versions 10:08:20 +++ sort -V 10:08:20 +++ tail -n 1 10:08:20 ++ py_version_xyz=3.11.10 10:08:20 ++ [[ -z 3.11.10 ]] 10:08:20 ++ echo 3.11.10 10:08:20 ++ return 0 10:08:20 + pyenv local 3.11.10 10:08:20 + local command 10:08:20 + command=local 10:08:20 + '[' 2 -gt 0 ']' 10:08:20 + shift 10:08:20 + case "$command" in 10:08:20 + command pyenv local 3.11.10 10:08:20 + for arg in "$@" 10:08:20 + case $arg in 10:08:20 + pkg_list+='tox ' 10:08:20 + for arg in "$@" 10:08:20 + case $arg in 10:08:20 + pkg_list+='virtualenv ' 10:08:20 + for arg in "$@" 10:08:20 + case $arg in 10:08:20 + pkg_list+='urllib3~=1.26.15 ' 10:08:20 + [[ -f /tmp/.toxenv ]] 10:08:20 + [[ ! -f /tmp/.toxenv ]] 10:08:20 + [[ -n '' ]] 10:08:20 + python3 -m venv /tmp/venv-6U5k 10:08:24 + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-6U5k' 10:08:24 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-6U5k 10:08:24 + echo /tmp/venv-6U5k 10:08:24 + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' 10:08:24 lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv 10:08:24 + /tmp/venv-6U5k/bin/python3 -m pip install --upgrade --quiet pip 'setuptools<66' virtualenv 10:08:28 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 10:08:28 + echo 'lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 ' 10:08:28 lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 10:08:28 + /tmp/venv-6U5k/bin/python3 -m pip install --upgrade --quiet --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 10:08:30 + type python3 10:08:30 + true 10:08:30 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-6U5k/bin to PATH' 10:08:30 lf-activate-venv(): INFO: Adding /tmp/venv-6U5k/bin to PATH 10:08:30 + PATH=/tmp/venv-6U5k/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 10:08:30 + return 0 10:08:30 + python3 --version 10:08:30 Python 3.11.10 10:08:30 + python3 -m pip --version 10:08:30 pip 25.2 from /tmp/venv-6U5k/lib/python3.11/site-packages/pip (python 3.11) 10:08:30 + python3 -m pip freeze 10:08:31 cachetools==6.2.0 10:08:31 chardet==5.2.0 10:08:31 colorama==0.4.6 10:08:31 distlib==0.4.0 10:08:31 filelock==3.19.1 10:08:31 packaging==25.0 10:08:31 platformdirs==4.4.0 10:08:31 pluggy==1.6.0 10:08:31 pyproject-api==1.9.1 10:08:31 tox==4.30.2 10:08:31 urllib3==1.26.20 10:08:31 virtualenv==20.34.0 10:08:31 [transportpce-tox-verify-transportpce-master] $ /bin/sh -xe /tmp/jenkins11203197671888002123.sh 10:08:31 [EnvInject] - Injecting environment variables from a build step. 10:08:31 [EnvInject] - Injecting as environment variables the properties content 10:08:31 PARALLEL=True 10:08:31 10:08:31 [EnvInject] - Variables injected successfully. 10:08:31 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins11881207838269989167.sh 10:08:31 ---> tox-run.sh 10:08:31 + 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 10:08:31 + ARCHIVE_TOX_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 10:08:31 + ARCHIVE_DOC_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 10:08:31 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 10:08:31 + cd /w/workspace/transportpce-tox-verify-transportpce-master/. 10:08:31 + source /home/jenkins/lf-env.sh 10:08:31 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 10:08:31 ++ mktemp -d /tmp/venv-XXXX 10:08:31 + lf_venv=/tmp/venv-KveQ 10:08:31 + local venv_file=/tmp/.os_lf_venv 10:08:31 + local python=python3 10:08:31 + local options 10:08:31 + local set_path=true 10:08:31 + local install_args= 10:08:31 ++ 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 10:08:31 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 10:08:31 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 10:08:31 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 10:08:31 + true 10:08:31 + case $1 in 10:08:31 + venv_file=/tmp/.toxenv 10:08:31 + shift 2 10:08:31 + true 10:08:31 + case $1 in 10:08:31 + shift 10:08:31 + break 10:08:31 + case $python in 10:08:31 + local pkg_list= 10:08:31 + [[ -d /opt/pyenv ]] 10:08:31 + echo 'Setup pyenv:' 10:08:31 Setup pyenv: 10:08:31 + export PYENV_ROOT=/opt/pyenv 10:08:31 + PYENV_ROOT=/opt/pyenv 10:08:31 + 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 10:08:31 + 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 10:08:31 + pyenv versions 10:08:31 system 10:08:31 3.8.20 10:08:31 3.9.20 10:08:31 3.10.15 10:08:31 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:08:31 + command -v pyenv 10:08:31 ++ pyenv init - --no-rehash 10:08:31 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 10:08:31 for i in ${!paths[@]}; do 10:08:31 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 10:08:31 fi; done; 10:08:31 echo "${paths[*]}"'\'')" 10:08:31 export PATH="/opt/pyenv/shims:${PATH}" 10:08:31 export PYENV_SHELL=bash 10:08:31 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 10:08:31 pyenv() { 10:08:31 local command 10:08:31 command="${1:-}" 10:08:31 if [ "$#" -gt 0 ]; then 10:08:31 shift 10:08:31 fi 10:08:31 10:08:31 case "$command" in 10:08:31 rehash|shell) 10:08:31 eval "$(pyenv "sh-$command" "$@")" 10:08:31 ;; 10:08:31 *) 10:08:31 command pyenv "$command" "$@" 10:08:31 ;; 10:08:31 esac 10:08:31 }' 10:08:31 +++ bash --norc -ec 'IFS=:; paths=($PATH); 10:08:31 for i in ${!paths[@]}; do 10:08:31 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 10:08:31 fi; done; 10:08:31 echo "${paths[*]}"' 10:08:31 ++ 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 10:08:31 ++ 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 10:08:31 ++ 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 10:08:31 ++ export PYENV_SHELL=bash 10:08:31 ++ PYENV_SHELL=bash 10:08:31 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 10:08:31 +++ complete -F _pyenv pyenv 10:08:31 ++ lf-pyver python3 10:08:31 ++ local py_version_xy=python3 10:08:31 ++ local py_version_xyz= 10:08:31 ++ pyenv versions 10:08:31 ++ local command 10:08:31 ++ command=versions 10:08:31 ++ '[' 1 -gt 0 ']' 10:08:31 ++ shift 10:08:31 ++ case "$command" in 10:08:31 ++ command pyenv versions 10:08:31 ++ sed 's/^[ *]* //' 10:08:31 ++ awk '{ print $1 }' 10:08:31 ++ grep -E '^[0-9.]*[0-9]$' 10:08:31 ++ [[ ! -s /tmp/.pyenv_versions ]] 10:08:31 +++ grep '^3' /tmp/.pyenv_versions 10:08:31 +++ sort -V 10:08:31 +++ tail -n 1 10:08:31 ++ py_version_xyz=3.11.10 10:08:31 ++ [[ -z 3.11.10 ]] 10:08:31 ++ echo 3.11.10 10:08:31 ++ return 0 10:08:31 + pyenv local 3.11.10 10:08:31 + local command 10:08:31 + command=local 10:08:31 + '[' 2 -gt 0 ']' 10:08:31 + shift 10:08:31 + case "$command" in 10:08:31 + command pyenv local 3.11.10 10:08:31 + for arg in "$@" 10:08:31 + case $arg in 10:08:31 + pkg_list+='tox ' 10:08:31 + for arg in "$@" 10:08:31 + case $arg in 10:08:31 + pkg_list+='virtualenv ' 10:08:31 + for arg in "$@" 10:08:31 + case $arg in 10:08:31 + pkg_list+='urllib3~=1.26.15 ' 10:08:31 + [[ -f /tmp/.toxenv ]] 10:08:31 ++ cat /tmp/.toxenv 10:08:31 + lf_venv=/tmp/venv-6U5k 10:08:31 + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-6U5k from' file:/tmp/.toxenv 10:08:31 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-6U5k from file:/tmp/.toxenv 10:08:31 + /tmp/venv-6U5k/bin/python3 -m pip install --upgrade --quiet pip 'setuptools<66' virtualenv 10:08:32 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 10:08:32 + echo 'lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 ' 10:08:32 lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 10:08:32 + /tmp/venv-6U5k/bin/python3 -m pip install --upgrade --quiet --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 10:08:33 + type python3 10:08:33 + true 10:08:33 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-6U5k/bin to PATH' 10:08:33 lf-activate-venv(): INFO: Adding /tmp/venv-6U5k/bin to PATH 10:08:33 + PATH=/tmp/venv-6U5k/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 10:08:33 + return 0 10:08:33 + [[ -d /opt/pyenv ]] 10:08:33 + echo '---> Setting up pyenv' 10:08:33 ---> Setting up pyenv 10:08:33 + export PYENV_ROOT=/opt/pyenv 10:08:33 + PYENV_ROOT=/opt/pyenv 10:08:33 + export PATH=/opt/pyenv/bin:/tmp/venv-6U5k/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 10:08:33 + PATH=/opt/pyenv/bin:/tmp/venv-6U5k/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 10:08:33 ++ pwd 10:08:33 + PYTHONPATH=/w/workspace/transportpce-tox-verify-transportpce-master 10:08:33 + export PYTHONPATH 10:08:33 + export TOX_TESTENV_PASSENV=PYTHONPATH 10:08:33 + TOX_TESTENV_PASSENV=PYTHONPATH 10:08:33 + tox --version 10:08:33 4.30.2 from /tmp/venv-6U5k/lib/python3.11/site-packages/tox/__init__.py 10:08:33 + PARALLEL=True 10:08:33 + TOX_OPTIONS_LIST= 10:08:33 + [[ -n '' ]] 10:08:33 + case ${PARALLEL,,} in 10:08:33 + TOX_OPTIONS_LIST=' --parallel auto --parallel-live' 10:08:33 + tox --parallel auto --parallel-live 10:08:33 + tee -a /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tox.log 10:08:35 docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt 10:08:35 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 10:08:35 checkbashisms: freeze> python -m pip freeze --all 10:08:35 docs: install_deps> python -I -m pip install -r docs/requirements.txt 10:08:36 checkbashisms: pip==25.2,setuptools==80.9.0 10:08:36 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 10:08:36 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)' 10:08:36 checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + 10:08:37 checkbashisms: OK ✔ in 3.38 seconds 10:08:37 pre-commit: install_deps> python -I -m pip install pre-commit 10:08:40 pre-commit: freeze> python -m pip freeze --all 10:08:40 pre-commit: cfgv==3.4.0,distlib==0.4.0,filelock==3.19.1,identify==2.6.14,nodeenv==1.9.1,pip==25.2,platformdirs==4.4.0,pre_commit==4.3.0,PyYAML==6.0.2,setuptools==80.9.0,virtualenv==20.34.0 10:08:40 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 10:08:40 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)' 10:08:40 /usr/bin/cpan 10:08:40 pre-commit: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure 10:08:40 [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. 10:08:40 [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. 10:08:40 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 10:08:41 [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. 10:08:41 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. 10:08:42 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. 10:08:42 buildcontroller: freeze> python -m pip freeze --all 10:08:42 [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. 10:08:42 buildcontroller: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:08:42 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh 10:08:42 + update-java-alternatives -l 10:08:42 java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 10:08:42 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 10:08:42 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 10:08:42 + sudo update-java-alternatives -s java-1.21.0-openjdk-amd64 10:08:42 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. 10:08:42 update-alternatives: error: no alternatives for jaotc 10:08:43 update-alternatives: error: no alternatives for rmic 10:08:43 + + sed -n ;s/.* version "\(.*\)\.\(.*\)\..*".*$/\1/p; 10:08:43 java -version 10:08:43 + JAVA_VER=21 10:08:43 + echo 21 10:08:43 21 10:08:43 + sed -n ;s/javac \(.*\)\.\(.*\)\..*.*$/\1/p; 10:08:43 + javac -version 10:08:43 [INFO] Initializing environment for https://github.com/perltidy/perltidy. 10:08:43 + JAVAC_VER=21 10:08:43 + echo 21 10:08:43 21 10:08:43 ok, java is 21 or newer 10:08:43 + [ 21 -ge 21 ] 10:08:43 + [ 21 -ge 21 ] 10:08:43 + echo ok, java is 21 or newer 10:08:43 + wget -nv https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz -P /tmp 10:08:43 2025-09-12 10:08:43 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] 10:08:43 + sudo mkdir -p /opt 10:08:43 + sudo tar xf /tmp/apache-maven-3.9.11-bin.tar.gz -C /opt 10:08:43 + sudo ln -s /opt/apache-maven-3.9.11 /opt/maven 10:08:43 + sudo ln -s /opt/maven/bin/mvn /usr/bin/mvn 10:08:43 + mvn --version 10:08:43 Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b) 10:08:43 Maven home: /opt/maven 10:08:43 Java version: 21.0.5, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 10:08:43 Default locale: en, platform encoding: UTF-8 10:08:43 OS name: "linux", version: "5.15.0-131-generic", arch: "amd64", family: "unix" 10:08:44 NOTE: Picked up JDK_JAVA_OPTIONS: 10:08:44 --add-opens=java.base/java.io=ALL-UNNAMED 10:08:44 --add-opens=java.base/java.lang=ALL-UNNAMED 10:08:44 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 10:08:44 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 10:08:44 --add-opens=java.base/java.net=ALL-UNNAMED 10:08:44 --add-opens=java.base/java.nio=ALL-UNNAMED 10:08:44 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 10:08:44 --add-opens=java.base/java.nio.file=ALL-UNNAMED 10:08:44 --add-opens=java.base/java.util=ALL-UNNAMED 10:08:44 --add-opens=java.base/java.util.jar=ALL-UNNAMED 10:08:44 --add-opens=java.base/java.util.stream=ALL-UNNAMED 10:08:44 --add-opens=java.base/java.util.zip=ALL-UNNAMED 10:08:44 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 10:08:44 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 10:08:44 -Xlog:disable 10:08:44 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 10:08:44 [INFO] Once installed this environment will be reused. 10:08:44 [INFO] This may take a few minutes... 10:08:50 [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. 10:08:50 [INFO] Once installed this environment will be reused. 10:08:50 [INFO] This may take a few minutes... 10:08:58 [INFO] Installing environment for https://github.com/pre-commit/mirrors-autopep8. 10:08:58 [INFO] Once installed this environment will be reused. 10:08:58 [INFO] This may take a few minutes... 10:09:02 docs-linkcheck: freeze> python -m pip freeze --all 10:09:02 docs: freeze> python -m pip freeze --all 10:09:03 docs-linkcheck: alabaster==1.0.0,attrs==25.3.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.8.3,charset-normalizer==3.4.3,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.59.2,funcparserlib==2.0.0a0,future==1.0.0,idna==3.10,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.9,lfdocs-conf==0.9.0,MarkupSafe==3.0.2,matplotlib==3.10.6,numpy==2.3.3,nwdiag==3.0.0,packaging==25.0,pillow==11.3.0,pip==25.2,Pygments==2.19.2,pyparsing==3.2.3,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.5,requests-file==1.5.1,roman-numerals-py==3.1.0,seqdiag==3.0.0,setuptools==80.9.0,six==1.17.0,snowballstemmer==3.0.1,Sphinx==8.2.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.2,sphinx-tabs==3.4.7,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.5.0,webcolors==24.11.1 10:09:03 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 10:09:03 docs: alabaster==1.0.0,attrs==25.3.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.8.3,charset-normalizer==3.4.3,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.59.2,funcparserlib==2.0.0a0,future==1.0.0,idna==3.10,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.9,lfdocs-conf==0.9.0,MarkupSafe==3.0.2,matplotlib==3.10.6,numpy==2.3.3,nwdiag==3.0.0,packaging==25.0,pillow==11.3.0,pip==25.2,Pygments==2.19.2,pyparsing==3.2.3,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.5,requests-file==1.5.1,roman-numerals-py==3.1.0,seqdiag==3.0.0,setuptools==80.9.0,six==1.17.0,snowballstemmer==3.0.1,Sphinx==8.2.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.2,sphinx-tabs==3.4.7,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.5.0,webcolors==24.11.1 10:09:03 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 10:09:03 [INFO] Installing environment for https://github.com/perltidy/perltidy. 10:09:03 [INFO] Once installed this environment will be reused. 10:09:03 [INFO] This may take a few minutes... 10:09:06 docs: OK ✔ in 32.18 seconds 10:09:06 pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' 10:09:10 docs-linkcheck: OK ✔ in 33.24 seconds 10:09:10 pylint: freeze> python -m pip freeze --all 10:09:10 pylint: astroid==3.3.11,dill==0.4.0,isort==6.0.1,mccabe==0.7.0,pip==25.2,platformdirs==4.4.0,pylint==3.3.8,setuptools==80.9.0,tomlkit==0.13.3 10:09:10 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}$' '{}' + 10:09:15 trim trailing whitespace.................................................Passed 10:09:16 Tabs remover.............................................................Passed 10:09:16 autopep8.................................................................Passed 10:09:22 perltidy.................................................................Passed 10:09:23 pre-commit: commands[3] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run gitlint-ci --hook-stage manual 10:09:23 [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. 10:09:23 [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. 10:09:23 [INFO] Installing environment for https://github.com/jorisroovers/gitlint. 10:09:23 [INFO] Once installed this environment will be reused. 10:09:23 [INFO] This may take a few minutes... 10:09:33 gitlint..................................................................Passed 10:09:34 10:09:34 ------------------------------------ 10:09:34 Your code has been rated at 10.00/10 10:09:34 10:10:29 pre-commit: OK ✔ in 56.41 seconds 10:10:29 pylint: OK ✔ in 30.49 seconds 10:10:29 buildcontroller: OK ✔ in 1 minute 54.22 seconds 10:10:29 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 10:10:29 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 10:10:29 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 10:10:29 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 10:10:36 build_karaf_tests190: freeze> python -m pip freeze --all 10:10:36 build_karaf_tests71: freeze> python -m pip freeze --all 10:10:36 build_karaf_tests121: freeze> python -m pip freeze --all 10:10:36 build_karaf_tests221: freeze> python -m pip freeze --all 10:10:36 build_karaf_tests190: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:10:36 build_karaf_tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 10:10:36 build karaf in karafoc with ./karafoc.env 10:10:36 build_karaf_tests121: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:10:36 build_karaf_tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 10:10:36 build_karaf_tests71: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:10:36 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 10:10:36 build karaf in karaf121 with ./karaf121.env 10:10:36 build karaf in karaf71 with ./karaf71.env 10:10:36 NOTE: Picked up JDK_JAVA_OPTIONS: 10:10:36 --add-opens=java.base/java.io=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.net=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio.file=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.jar=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.stream=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.zip=ALL-UNNAMED 10:10:36 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 10:10:36 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 10:10:36 -Xlog:disable 10:10:36 build_karaf_tests221: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:10:36 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 10:10:36 build karaf in karaf221 with ./karaf221.env 10:10:36 NOTE: Picked up JDK_JAVA_OPTIONS: 10:10:36 --add-opens=java.base/java.io=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.net=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio.file=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.jar=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.stream=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.zip=ALL-UNNAMED 10:10:36 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 10:10:36 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 10:10:36 -Xlog:disable 10:10:36 NOTE: Picked up JDK_JAVA_OPTIONS: 10:10:36 --add-opens=java.base/java.io=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.net=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio.file=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.jar=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.stream=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.zip=ALL-UNNAMED 10:10:36 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 10:10:36 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 10:10:36 -Xlog:disable 10:10:36 NOTE: Picked up JDK_JAVA_OPTIONS: 10:10:36 --add-opens=java.base/java.io=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.net=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.nio.file=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.jar=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.stream=ALL-UNNAMED 10:10:36 --add-opens=java.base/java.util.zip=ALL-UNNAMED 10:10:36 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 10:10:36 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 10:10:36 -Xlog:disable 10:11:39 build_karaf_tests190: OK ✔ in 1 minute 10.08 seconds 10:11:39 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 10:11:43 build_karaf_tests221: OK ✔ in 1 minute 14.51 seconds 10:11:43 build_karaf_tests121: OK ✔ in 1 minute 14.59 seconds 10:11:43 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 10:11:44 build_karaf_tests71: OK ✔ in 1 minute 16.06 seconds 10:11:44 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 10:11:50 buildlighty: freeze> python -m pip freeze --all 10:11:50 buildlighty: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:11:50 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh 10:11:50 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED 10:11:51 sims: freeze> python -m pip freeze --all 10:11:51 sims: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:11:51 sims: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_lightynode.sh 10:11:51 Using lighynode version 20.1.0.5 10:11:51 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory 10:12:41 sims: OK ✔ in 12.76 seconds 10:12:41 buildlighty: OK ✔ in 36.28 seconds 10:12:41 testsPCE: freeze> python -m pip freeze --all 10:12:42 testsPCE: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,click==8.2.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.59.2,gnpy4tpce==2.4.7,idna==3.10,iniconfig==2.1.0,injector==0.22.0,invoke==2.2.0,itsdangerous==2.2.0,Jinja2==3.1.6,kiwisolver==1.4.9,lxml==6.0.1,MarkupSafe==3.0.2,matplotlib==3.10.6,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==11.3.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pyparsing==3.2.3,pytest==8.4.2,python-dateutil==2.9.0.post0,pytz==2025.2,requests==2.32.5,scipy==1.16.2,setuptools==50.3.2,six==1.17.0,urllib3==2.5.0,Werkzeug==2.0.3,xlrd==1.2.0 10:12:42 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce 10:12:42 pytest -q transportpce_tests/pce/test01_pce.py 10:13:29 .................... [100%] 10:14:32 20 passed in 109.87s (0:01:49) 10:14:32 pytest -q transportpce_tests/pce/test02_pce_400G.py 10:14:48 ............ [100%] 10:15:18 12 passed in 46.07s 10:15:18 pytest -q transportpce_tests/pce/test03_gnpy.py 10:15:35 ........ [100%] 10:15:56 8 passed in 37.21s 10:15:56 pytest -q transportpce_tests/pce/test04_pce_bug_fix.py 10:16:27 ... [100%] 10:16:32 3 passed in 36.28s 10:16:33 testsPCE: OK ✔ in 4 minutes 48.44 seconds 10:16:33 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 10:16:33 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 10:16:33 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 10:16:40 tests_tapi: freeze> python -m pip freeze --all 10:16:40 tests190: freeze> python -m pip freeze --all 10:16:40 tests121: freeze> python -m pip freeze --all 10:16:40 tests_tapi: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:16:40 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi 10:16:40 using environment variables from ./karaf221.env 10:16:40 pytest -q transportpce_tests/tapi/test01_abstracted_topology.py 10:16:40 tests190: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:16:40 tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh oc 10:16:40 using environment variables from ./karafoc.env 10:16:40 pytest -q transportpce_tests/oc/test01_portmapping.py 10:16:40 tests121: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:16:40 tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 10:16:40 using environment variables from ./karaf121.env 10:16:40 pytest -q transportpce_tests/1.2.1/test01_portmapping.py 10:17:43 ........... [100%] 10:17:59 10 passed in 78.91s (0:01:18) 10:17:59 pytest -q transportpce_tests/oc/test02_topology.py 10:18:05 ........................... [100%] 10:18:45 21 passed in 124.65s (0:02:04) 10:18:45 pytest -q transportpce_tests/1.2.1/test02_topo_portmapping.py 10:18:47 .......... [100%] 10:19:30 6 passed in 45.01s 10:19:30 pytest -q transportpce_tests/1.2.1/test03_topology.py 10:20:12 ........................................F........ [100%] 10:21:47 44 passed in 136.85s (0:02:16) 10:21:47 pytest -q transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py 10:21:55 ..... [100%] 10:22:05 14 passed in 245.42s (0:04:05) 10:22:05 pytest -q transportpce_tests/oc/test03_renderer.py 10:22:26 .................................. [100%] 10:22:59 19 passed in 53.95s 10:22:59 tests190: OK ✔ in 6 minutes 26.68 seconds 10:22:59 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 10:23:00 ....tests71: freeze> python -m pip freeze --all 10:23:07 tests71: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:23:07 tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 10:23:07 using environment variables from ./karaf71.env 10:23:07 pytest -q transportpce_tests/7.1/test01_portmapping.py 10:23:08 ..... [100%] 10:23:18 24 passed in 90.80s (0:01:30) 10:23:18 pytest -q transportpce_tests/1.2.1/test05_olm.py 10:23:47 ............ [100%] 10:24:01 12 passed in 53.52s 10:24:01 pytest -q transportpce_tests/7.1/test02_otn_renderer.py 10:24:12 ................................................................................................... [100%] 10:26:45 62 passed in 164.38s (0:02:44) 10:26:45 pytest -q transportpce_tests/7.1/test03_renderer_or_modes.py 10:27:17 ..........FFFFF.FFFF...FFFFFFFF............F...........FFFFFFFFFF..F...................... [100%] 10:29:00 48 passed in 134.39s (0:02:14) 10:29:00 pytest -q transportpce_tests/7.1/test04_renderer_regen_mode.py 10:29:24 .......... [100%] 10:29:36 40 passed in 377.32s (0:06:17) 10:29:36 pytest -q transportpce_tests/1.2.1/test06_end2end.py 10:29:37 [100%] 10:29:37 =================================== FAILURES =================================== 10:29:37 _________ TestTransportPCEAbstractedTopology.test_04_check_tapi_topos __________ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_04_check_tapi_topos(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T100GE_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 self.assertEqual(len(response["output"]["topology"]["node"]), 1, 'Topology should contain 1 node') 10:29:37 self.assertNotIn("link", response["output"]["topology"], 'Topology should contain no link') 10:29:37 10:29:37 self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > self.assertEqual(len(response["output"]["topology"]["node"]), 1, 'Topology should contain 1 node') 10:29:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:29:37 E KeyError: 'node' 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:221: KeyError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_04_check_tapi_topos 10:29:37 _________ TestTransportPCEAbstractedTopology.test_10_check_tapi_topos __________ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_10_check_tapi_topos(self): 10:29:37 self.test_01_get_tapi_topology_T100G() 10:29:37 self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > self.assertEqual(1, len(response["output"]["topology"]["node"]), 'Topology should contain 1 node') 10:29:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:29:37 E KeyError: 'node' 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:254: KeyError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_10_check_tapi_topos 10:29:37 __ TestTransportPCEAbstractedTopology.test_11_connect_xpdra_n1_to_roadma_pp1 ___ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_11_connect_xpdra_n1_to_roadma_pp1(self): 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'transportpce-networkutils', 'init-xpdr-rdm-links', 10:29:37 {'links-input': {'xpdr-node': 'XPDR-A1', 'xpdr-num': '1', 'network-num': '1', 10:29:37 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 204 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:275: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_11_connect_xpdra_n1_to_roadma_pp1 10:29:37 __ TestTransportPCEAbstractedTopology.test_12_connect_roadma_pp1_to_xpdra_n1 ___ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_12_connect_roadma_pp1_to_xpdra_n1(self): 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'transportpce-networkutils', 'init-rdm-xpdr-links', 10:29:37 {'links-input': {'xpdr-node': 'XPDR-A1', 'xpdr-num': '1', 'network-num': '1', 10:29:37 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 204 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:285: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_12_connect_roadma_pp1_to_xpdra_n1 10:29:37 _____ TestTransportPCEAbstractedTopology.test_13_check_tapi_topology_T100G _____ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_13_check_tapi_topology_T100G(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T100GE_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > self.assertEqual(1, len(response["output"]["topology"]["node"][0]["owned-node-edge-point"]), 10:29:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:29:37 'Node should contain 1 owned-node-edge-points') 10:29:37 E KeyError: 'owned-node-edge-point' 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:295: KeyError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_13_check_tapi_topology_T100G 10:29:37 ______ TestTransportPCEAbstractedTopology.test_14_check_tapi_topology_T0 _______ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_14_check_tapi_topology_T0(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > nodes = response["output"]["topology"]["node"] 10:29:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:29:37 E KeyError: 'node' 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:306: KeyError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_14_check_tapi_topology_T0 10:29:37 __ TestTransportPCEAbstractedTopology.test_16_connect_xpdrc_n1_to_roadmc_pp1 ___ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_16_connect_xpdrc_n1_to_roadmc_pp1(self): 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'transportpce-networkutils', 'init-xpdr-rdm-links', 10:29:37 {'links-input': {'xpdr-node': 'XPDR-C1', 'xpdr-num': '1', 'network-num': '1', 10:29:37 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 204 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:326: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_16_connect_xpdrc_n1_to_roadmc_pp1 10:29:37 __ TestTransportPCEAbstractedTopology.test_17_connect_roadmc_pp1_to_xpdrc_n1 ___ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_17_connect_roadmc_pp1_to_xpdrc_n1(self): 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'transportpce-networkutils', 'init-rdm-xpdr-links', 10:29:37 {'links-input': {'xpdr-node': 'XPDR-C1', 'xpdr-num': '1', 'network-num': '1', 10:29:37 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 204 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:336: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_17_connect_roadmc_pp1_to_xpdrc_n1 10:29:37 _____ TestTransportPCEAbstractedTopology.test_18_check_tapi_topology_T100G _____ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_18_check_tapi_topology_T100G(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T100GE_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > self.assertEqual(2, len(response["output"]["topology"]["node"][0]["owned-node-edge-point"]), 10:29:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:29:37 'Node should contain 2 owned-node-edge-points') 10:29:37 E KeyError: 'owned-node-edge-point' 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:346: KeyError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_18_check_tapi_topology_T100G 10:29:37 ______ TestTransportPCEAbstractedTopology.test_19_check_tapi_topology_T0 _______ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_19_check_tapi_topology_T0(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > nodes = response["output"]["topology"]["node"] 10:29:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:29:37 E KeyError: 'node' 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:360: KeyError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_19_check_tapi_topology_T0 10:29:37 _____ TestTransportPCEAbstractedTopology.test_22_check_tapi_topology_T100G _____ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_22_check_tapi_topology_T100G(self): 10:29:37 > self.test_18_check_tapi_topology_T100G() 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:382: 10:29:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_18_check_tapi_topology_T100G(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T100GE_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > self.assertEqual(2, len(response["output"]["topology"]["node"][0]["owned-node-edge-point"]), 10:29:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:29:37 'Node should contain 2 owned-node-edge-points') 10:29:37 E KeyError: 'owned-node-edge-point' 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:346: KeyError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_22_check_tapi_topology_T100G 10:29:37 ______ TestTransportPCEAbstractedTopology.test_23_check_tapi_topology_T0 _______ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_23_check_tapi_topology_T0(self): 10:29:37 > self.test_19_check_tapi_topology_T0() 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:385: 10:29:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_19_check_tapi_topology_T0(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > nodes = response["output"]["topology"]["node"] 10:29:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:29:37 E KeyError: 'node' 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:360: KeyError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_23_check_tapi_topology_T0 10:29:37 __ TestTransportPCEAbstractedTopology.test_24_connect_sprda_n1_to_roadma_pp2 ___ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_24_connect_sprda_n1_to_roadma_pp2(self): 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'transportpce-networkutils', 'init-xpdr-rdm-links', 10:29:37 {'links-input': {'xpdr-node': 'SPDR-SA1', 'xpdr-num': '1', 'network-num': '1', 10:29:37 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP2-TXRX'}}) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 204 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:392: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_24_connect_sprda_n1_to_roadma_pp2 10:29:37 __ TestTransportPCEAbstractedTopology.test_25_connect_roadma_pp2_to_spdra_n1 ___ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_25_connect_roadma_pp2_to_spdra_n1(self): 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'transportpce-networkutils', 'init-rdm-xpdr-links', 10:29:37 {'links-input': {'xpdr-node': 'SPDR-SA1', 'xpdr-num': '1', 'network-num': '1', 10:29:37 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP2-TXRX'}}) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 204 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:402: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_25_connect_roadma_pp2_to_spdra_n1 10:29:37 __ TestTransportPCEAbstractedTopology.test_26_connect_sprdc_n1_to_roadmc_pp2 ___ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_26_connect_sprdc_n1_to_roadmc_pp2(self): 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'transportpce-networkutils', 'init-xpdr-rdm-links', 10:29:37 {'links-input': {'xpdr-node': 'SPDR-SC1', 'xpdr-num': '1', 'network-num': '1', 10:29:37 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP2-TXRX'}}) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 204 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:412: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_26_connect_sprdc_n1_to_roadmc_pp2 10:29:37 __ TestTransportPCEAbstractedTopology.test_27_connect_roadmc_pp2_to_spdrc_n1 ___ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_27_connect_roadmc_pp2_to_spdrc_n1(self): 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'transportpce-networkutils', 'init-rdm-xpdr-links', 10:29:37 {'links-input': {'xpdr-node': 'SPDR-SC1', 'xpdr-num': '1', 'network-num': '1', 10:29:37 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP2-TXRX'}}) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 204 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:422: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_27_connect_roadmc_pp2_to_spdrc_n1 10:29:37 _____ TestTransportPCEAbstractedTopology.test_28_check_tapi_topology_T100G _____ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_28_check_tapi_topology_T100G(self): 10:29:37 > self.test_18_check_tapi_topology_T100G() 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:428: 10:29:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_18_check_tapi_topology_T100G(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T100GE_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > self.assertEqual(2, len(response["output"]["topology"]["node"][0]["owned-node-edge-point"]), 10:29:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:29:37 'Node should contain 2 owned-node-edge-points') 10:29:37 E KeyError: 'owned-node-edge-point' 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:346: KeyError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_28_check_tapi_topology_T100G 10:29:37 ______ TestTransportPCEAbstractedTopology.test_29_check_tapi_topology_T0 _______ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_29_check_tapi_topology_T0(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > nodes = response["output"]["topology"]["node"] 10:29:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:29:37 E KeyError: 'node' 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:435: KeyError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_29_check_tapi_topology_T0 10:29:37 ______ TestTransportPCEAbstractedTopology.test_32_check_tapi_topology_T0 _______ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_32_check_tapi_topology_T0(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 500 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:489: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_32_check_tapi_topology_T0 10:29:37 ______ TestTransportPCEAbstractedTopology.test_34_check_tapi_topology_T0 _______ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_34_check_tapi_topology_T0(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 500 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:528: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_34_check_tapi_topology_T0 10:29:37 _ TestTransportPCEAbstractedTopology.test_35_connect_sprda_2_n2_to_roadma_pp3 __ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_35_connect_sprda_2_n2_to_roadma_pp3(self): 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'transportpce-networkutils', 'init-xpdr-rdm-links', 10:29:37 {'links-input': {'xpdr-node': 'SPDR-SA1', 'xpdr-num': '2', 'network-num': '2', 10:29:37 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP3-TXRX'}}) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 204 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:554: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_35_connect_sprda_2_n2_to_roadma_pp3 10:29:37 _ TestTransportPCEAbstractedTopology.test_36_connect_roadma_pp3_to_spdra_2_n2 __ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_36_connect_roadma_pp3_to_spdra_2_n2(self): 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'transportpce-networkutils', 'init-rdm-xpdr-links', 10:29:37 {'links-input': {'xpdr-node': 'SPDR-SA1', 'xpdr-num': '2', 'network-num': '2', 10:29:37 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP3-TXRX'}}) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 204 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:564: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_36_connect_roadma_pp3_to_spdra_2_n2 10:29:37 ______ TestTransportPCEAbstractedTopology.test_37_check_tapi_topology_T0 _______ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_37_check_tapi_topology_T0(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 500 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:573: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_37_check_tapi_topology_T0 10:29:37 ________ TestTransportPCEAbstractedTopology.test_38_delete_ODU4_service ________ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_38_delete_ODU4_service(self): 10:29:37 self.del_serv_input_data["service-delete-req-info"]["service-name"] = "service1-ODU4" 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'org-openroadm-service', 'service-delete', 10:29:37 self.del_serv_input_data) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > self.assertIn('Renderer service delete in progress', 10:29:37 response['output']['configuration-response-common']['response-message']) 10:29:37 E AssertionError: 'Renderer service delete in progress' not found in "Service 'service1-ODU4' does not exist in datastore" 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:593: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_38_delete_ODU4_service 10:29:37 ______ TestTransportPCEAbstractedTopology.test_39_delete_OCH_OTU4_service ______ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_39_delete_OCH_OTU4_service(self): 10:29:37 self.del_serv_input_data["service-delete-req-info"]["service-name"] = "service1-OCH-OTU4" 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'org-openroadm-service', 'service-delete', 10:29:37 self.del_serv_input_data) 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 > self.assertIn('Renderer service delete in progress', 10:29:37 response['output']['configuration-response-common']['response-message']) 10:29:37 E AssertionError: 'Renderer service delete in progress' not found in "Service 'service1-OCH-OTU4' does not exist in datastore" 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:603: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_39_delete_OCH_OTU4_service 10:29:37 ______ TestTransportPCEAbstractedTopology.test_40_check_tapi_topology_T0 _______ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_40_check_tapi_topology_T0(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 500 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:611: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_40_check_tapi_topology_T0 10:29:37 __ TestTransportPCEAbstractedTopology.test_41_disconnect_xponders_from_roadm ___ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_41_disconnect_xponders_from_roadm(self): 10:29:37 response = test_utils.get_ietf_network_request('openroadm-topology', 'config') 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 links = response['network'][0]['ietf-network-topology:link'] 10:29:37 for link in links: 10:29:37 > if link["org-openroadm-common-network:link-type"] in ('XPONDER-OUTPUT', 'XPONDER-INPUT'): 10:29:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:29:37 E KeyError: 'org-openroadm-common-network:link-type' 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:624: KeyError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_41_disconnect_xponders_from_roadm 10:29:37 ______ TestTransportPCEAbstractedTopology.test_42_check_tapi_topology_T0 _______ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_42_check_tapi_topology_T0(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 500 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:633: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_42_check_tapi_topology_T0 10:29:37 ______ TestTransportPCEAbstractedTopology.test_43_get_tapi_topology_T100G ______ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_43_get_tapi_topology_T100G(self): 10:29:37 self.tapi_topo["topology-id"] = test_utils.T100GE_UUID 10:29:37 response = test_utils.transportpce_api_rpc_request( 10:29:37 'tapi-topology', 'get-topology-details', self.tapi_topo) 10:29:37 > self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 500 != 200 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:647: AssertionError 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_43_get_tapi_topology_T100G 10:29:37 _________ TestTransportPCEAbstractedTopology.test_46_check_tapi_topos __________ 10:29:37 10:29:37 self = 10:29:37 10:29:37 def test_46_check_tapi_topos(self): 10:29:37 > self.test_01_get_tapi_topology_T100G() 10:29:37 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:662: 10:29:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:29:37 transportpce_tests/tapi/test01_abstracted_topology.py:185: in test_01_get_tapi_topology_T100G 10:29:37 self.assertEqual(response['status_code'], requests.codes.ok) 10:29:37 E AssertionError: 500 != 200 10:29:37 ----------------------------- Captured stdout call ----------------------------- 10:29:37 execution of test_46_check_tapi_topos 10:29:37 =========================== short test summary info ============================ 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_04_check_tapi_topos 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_10_check_tapi_topos 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_11_connect_xpdra_n1_to_roadma_pp1 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_12_connect_roadma_pp1_to_xpdra_n1 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_13_check_tapi_topology_T100G 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_14_check_tapi_topology_T0 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_16_connect_xpdrc_n1_to_roadmc_pp1 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_17_connect_roadmc_pp1_to_xpdrc_n1 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_18_check_tapi_topology_T100G 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_19_check_tapi_topology_T0 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_22_check_tapi_topology_T100G 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_23_check_tapi_topology_T0 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_24_connect_sprda_n1_to_roadma_pp2 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_25_connect_roadma_pp2_to_spdra_n1 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_26_connect_sprdc_n1_to_roadmc_pp2 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_27_connect_roadmc_pp2_to_spdrc_n1 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_28_check_tapi_topology_T100G 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_29_check_tapi_topology_T0 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_32_check_tapi_topology_T0 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_34_check_tapi_topology_T0 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_35_connect_sprda_2_n2_to_roadma_pp3 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_36_connect_roadma_pp3_to_spdra_2_n2 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_37_check_tapi_topology_T0 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_38_delete_ODU4_service 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_39_delete_OCH_OTU4_service 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_40_check_tapi_topology_T0 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_41_disconnect_xponders_from_roadm 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_42_check_tapi_topology_T0 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_43_get_tapi_topology_T100G 10:29:37 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_46_check_tapi_topos 10:29:37 30 failed, 21 passed in 776.76s (0:12:56) 10:29:37 tests_tapi: exit 1 (777.09 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi pid=7594 10:29:37 tests_tapi: FAIL ✖ in 13 minutes 4.54 seconds 10:29:37 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 10:29:37 ....tests221: freeze> python -m pip freeze --all 10:29:47 tests221: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:29:47 tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 10:29:47 using environment variables from ./karaf221.env 10:29:47 pytest -q transportpce_tests/2.2.1/test01_portmapping.py 10:29:47 ............. [100%] 10:30:14 22 passed in 73.56s (0:01:13) 10:30:29 ............................................F.FFF.............................. [100%] 10:34:15 =================================== FAILURES =================================== 10:34:15 ______ TestTransportPCEPortmapping.test_04_rdm_portmapping_DEG1_TTP_TXRX _______ 10:34:15 10:34:15 self = 10:34:15 10:34:15 def test_04_rdm_portmapping_DEG1_TTP_TXRX(self): 10:34:15 response = test_utils.get_portmapping_node_attr("ROADM-A1", "mapping", "DEG1-TTP-TXRX") 10:34:15 > self.assertEqual(response['status_code'], requests.codes.ok) 10:34:15 E AssertionError: 409 != 200 10:34:15 10:34:15 transportpce_tests/2.2.1/test01_portmapping.py:73: AssertionError 10:34:15 ----------------------------- Captured stdout call ----------------------------- 10:34:15 execution of test_04_rdm_portmapping_DEG1_TTP_TXRX 10:34:15 _ TestTransportPCEPortmapping.test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms _ 10:34:15 10:34:15 self = 10:34:15 10:34:15 def test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms(self): 10:34:15 response = test_utils.get_portmapping_node_attr("ROADM-A1", "mapping", "DEG2-TTP-TXRX") 10:34:15 > self.assertEqual(response['status_code'], requests.codes.ok) 10:34:15 E AssertionError: 409 != 200 10:34:15 10:34:15 transportpce_tests/2.2.1/test01_portmapping.py:82: AssertionError 10:34:15 ----------------------------- Captured stdout call ----------------------------- 10:34:15 execution of test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms 10:34:15 ______ TestTransportPCEPortmapping.test_06_rdm_portmapping_SRG1_PP3_TXRX _______ 10:34:15 10:34:15 self = 10:34:15 10:34:15 def test_06_rdm_portmapping_SRG1_PP3_TXRX(self): 10:34:15 response = test_utils.get_portmapping_node_attr("ROADM-A1", "mapping", "SRG1-PP3-TXRX") 10:34:15 > self.assertEqual(response['status_code'], requests.codes.ok) 10:34:15 E AssertionError: 409 != 200 10:34:15 10:34:15 transportpce_tests/2.2.1/test01_portmapping.py:93: AssertionError 10:34:15 ----------------------------- Captured stdout call ----------------------------- 10:34:15 execution of test_06_rdm_portmapping_SRG1_PP3_TXRX 10:34:15 ______ TestTransportPCEPortmapping.test_07_rdm_portmapping_SRG3_PP1_TXRX _______ 10:34:15 10:34:15 self = 10:34:15 10:34:15 def test_07_rdm_portmapping_SRG3_PP1_TXRX(self): 10:34:15 response = test_utils.get_portmapping_node_attr("ROADM-A1", "mapping", "SRG3-PP1-TXRX") 10:34:15 > self.assertEqual(response['status_code'], requests.codes.ok) 10:34:15 E AssertionError: 409 != 200 10:34:15 10:34:15 transportpce_tests/2.2.1/test01_portmapping.py:102: AssertionError 10:34:15 ----------------------------- Captured stdout call ----------------------------- 10:34:15 execution of test_07_rdm_portmapping_SRG3_PP1_TXRX 10:34:15 =========================== short test summary info ============================ 10:34:15 FAILED transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_rdm_portmapping_DEG1_TTP_TXRX 10:34:15 FAILED transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms 10:34:15 FAILED transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_rdm_portmapping_SRG1_PP3_TXRX 10:34:15 FAILED transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_rdm_portmapping_SRG3_PP1_TXRX 10:34:15 4 failed, 31 passed in 267.52s (0:04:27) 10:34:15 tests71: OK ✔ in 7 minutes 14.85 seconds 10:34:15 tests221: exit 1 (267.83 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 pid=19239 10:34:15 tests221: FAIL ✖ in 4 minutes 37.66 seconds 10:34:15 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 10:34:21 tests_hybrid: freeze> python -m pip freeze --all 10:34:21 tests_hybrid: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 10:34:21 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid 10:34:21 using environment variables from ./karaf221.env 10:34:21 pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py 10:34:21 ....E.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] 10:38:15 ==================================== ERRORS ==================================== 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_01_connect_xpdrA _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 sims_list = [('xpdra', '1.2.1'), ('roadma', '2.2.1'), ('roadmc', '2.2.1'), ('xpdrc', '7.1')] 10:38:15 10:38:15 def start_sims(sims_list): 10:38:15 if SIMS_TO_USE == 'None': 10:38:15 return None 10:38:15 if SIMS_TO_USE == 'honeynode': 10:38:15 start_method = start_honeynode 10:38:15 else: 10:38:15 start_method = start_lightynode 10:38:15 for sim in sims_list: 10:38:15 print('starting simulator ' + sim[0] + ' in OpenROADM device version ' + sim[1] + '...') 10:38:15 log_file = os.path.join(SIM_LOG_DIRECTORY, SIMS[sim]['logfile']) 10:38:15 process = start_method(log_file, sim) 10:38:15 if wait_until_log_contains(log_file, [HONEYNODE_OK_START_MSG, LIGHTYNODE_OK_START_MSG], 100): 10:38:15 print('simulator for ' + sim[0] + ' started') 10:38:15 else: 10:38:15 print('simulator for ' + sim[0] + ' failed to start') 10:38:15 shutdown_process(process) 10:38:15 for pid in process_list: 10:38:15 shutdown_process(pid) 10:38:15 > sys.exit(3) 10:38:15 E SystemExit: 3 10:38:15 10:38:15 transportpce_tests/common/test_utils.py:211: SystemExit 10:38:15 ---------------------------- Captured stdout setup ----------------------------- 10:38:15 starting OpenDaylight... 10:38:15 starting KARAF (karaf221) TransportPCE build... 10:38:15 Searching for patterns in karaf.log... Pattern found! OpenDaylight started ! 10:38:15 starting simulator xpdra in OpenROADM device version 1.2.1... 10:38:15 Searching for patterns in xpdra-121.log... Pattern not found after 100 seconds! simulator for xpdra failed to start 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_02_connect_xpdrC _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 ---------------------------- Captured stdout setup ----------------------------- 10:38:15 starting OpenDaylight... 10:38:15 starting KARAF (karaf221) TransportPCE build... 10:38:15 Searching for patterns in karaf.log... Pattern found! OpenDaylight started ! 10:38:15 starting simulator xpdra in OpenROADM device version 1.2.1... 10:38:15 Searching for patterns in xpdra-121.log... Pattern not found after 100 seconds! simulator for xpdra failed to start 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_03_connect_rdmA _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_04_connect_rdmC _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_05_connect_xpdrA_N1_to_roadmA_PP1 _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_06_connect_roadmA_PP1_to_xpdrA_N1 _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_07_connect_xpdrC_N1_to_roadmC_PP1 _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_08_connect_roadmC_PP1_to_xpdrC_N1 _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_09_add_omsAttributes_ROADMA_ROADMC _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_10_add_omsAttributes_ROADMC_ROADMA _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_11_create_eth_service1 _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_12_get_eth_service1 _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_13_change_status_line_port_xpdra _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_14_check_update_portmapping _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_15_check_update_openroadm_topo _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_16_check_update_service1 _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_17_restore_status_line_port_xpdra _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_18_check_update_portmapping_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_19_check_update_openroadm_topo_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_20_check_update_service1_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_21_change_status_port_roadma_srg _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_22_check_update_portmapping _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_23_check_update_openroadm_topo _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_24_restore_status_port_roadma_srg _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_25_check_update_portmapping_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_26_check_update_openroadm_topo_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_27_check_update_service1_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_28_change_status_line_port_roadma_deg _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_29_check_update_portmapping _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_30_check_update_openroadm_topo _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_31_restore_status_line_port_roadma_srg _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_32_check_update_portmapping_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_33_check_update_openroadm_topo_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_34_check_update_service1_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_35_change_status_line_port_xpdrc _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_36_check_update_portmapping _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_37_check_update_openroadm_topo _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_38_restore_status_line_port_xpdrc _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_39_check_update_portmapping_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_40_check_update_openroadm_topo_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_41_check_update_service1_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_42_change_status_port_roadma_srg _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_43_check_update_portmapping _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_44_check_update_openroadm_topo _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_45_check_update_service1_ok _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_46_delete_eth_service1 _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_47_disconnect_xponders_from_roadm _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_48_disconnect_XPDRA _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_49_disconnect_XPDRC _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_50_disconnect_ROADMA _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_51_disconnect_ROADMC _ 10:38:15 10:38:15 cls = 10:38:15 10:38:15 @classmethod 10:38:15 def setUpClass(cls): 10:38:15 cls.processes = test_utils.start_tpce() 10:38:15 > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), 10:38:15 ('roadma', cls.NODE_VERSION_221), 10:38:15 ('roadmc', cls.NODE_VERSION_221), 10:38:15 ('xpdrc', cls.NODE_VERSION_71)]) 10:38:15 10:38:15 transportpce_tests/hybrid/test01_device_change_notifications.py:78: 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 transportpce_tests/common/test_utils.py:210: in start_sims 10:38:15 shutdown_process(pid) 10:38:15 transportpce_tests/common/test_utils.py:286: in shutdown_process 10:38:15 for child in psutil.Process(process.pid).children(): 10:38:15 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ 10:38:15 self._init(pid) 10:38:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10:38:15 10:38:15 self = psutil.Process(pid=21100, status='terminated'), pid = 21100 10:38:15 _ignore_nsp = False 10:38:15 10:38:15 def _init(self, pid, _ignore_nsp=False): 10:38:15 if pid is None: 10:38:15 pid = os.getpid() 10:38:15 else: 10:38:15 if pid < 0: 10:38:15 msg = f"pid must be a positive integer (got {pid})" 10:38:15 raise ValueError(msg) 10:38:15 try: 10:38:15 _psplatform.cext.check_pid_range(pid) 10:38:15 except OverflowError as err: 10:38:15 msg = "process PID out of range" 10:38:15 raise NoSuchProcess(pid, msg=msg) from err 10:38:15 10:38:15 self._pid = pid 10:38:15 self._name = None 10:38:15 self._exe = None 10:38:15 self._create_time = None 10:38:15 self._gone = False 10:38:15 self._pid_reused = False 10:38:15 self._hash = None 10:38:15 self._lock = threading.RLock() 10:38:15 # used for caching on Windows only (on POSIX ppid may change) 10:38:15 self._ppid = None 10:38:15 # platform-specific modules define an _psplatform.Process 10:38:15 # implementation class 10:38:15 self._proc = _psplatform.Process(pid) 10:38:15 self._last_sys_cpu_times = None 10:38:15 self._last_proc_cpu_times = None 10:38:15 self._exitcode = _SENTINEL 10:38:15 self._ident = (self.pid, None) 10:38:15 try: 10:38:15 self._ident = self._get_ident() 10:38:15 except AccessDenied: 10:38:15 # This should happen on Windows only, since we use the fast 10:38:15 # create time method. AFAIK, on all other platforms we are 10:38:15 # able to get create time for all PIDs. 10:38:15 pass 10:38:15 except ZombieProcess: 10:38:15 # Zombies can still be queried by this class (although 10:38:15 # not always) and pids() return them so just go on. 10:38:15 pass 10:38:15 except NoSuchProcess: 10:38:15 if not _ignore_nsp: 10:38:15 msg = "process PID not found" 10:38:15 > raise NoSuchProcess(pid, msg=msg) from None 10:38:15 E psutil.NoSuchProcess: process PID not found (pid=21100) 10:38:15 10:38:15 ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess 10:38:15 =========================== short test summary info ============================ 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_01_connect_xpdrA 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_02_connect_xpdrC 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_03_connect_rdmA 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_04_connect_rdmC 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_05_connect_xpdrA_N1_to_roadmA_PP1 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_06_connect_roadmA_PP1_to_xpdrA_N1 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_07_connect_xpdrC_N1_to_roadmC_PP1 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_08_connect_roadmC_PP1_to_xpdrC_N1 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_09_add_omsAttributes_ROADMA_ROADMC 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_10_add_omsAttributes_ROADMC_ROADMA 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_11_create_eth_service1 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_12_get_eth_service1 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_13_change_status_line_port_xpdra 10:38:15 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_14_check_update_portmapping 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_15_check_update_openroadm_topo 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_16_check_update_service1 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_17_restore_status_line_port_xpdra 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_18_check_update_portmapping_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_19_check_update_openroadm_topo_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_20_check_update_service1_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_21_change_status_port_roadma_srg 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_22_check_update_portmapping 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_23_check_update_openroadm_topo 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_24_restore_status_port_roadma_srg 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_25_check_update_portmapping_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_26_check_update_openroadm_topo_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_27_check_update_service1_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_28_change_status_line_port_roadma_deg 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_29_check_update_portmapping 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_30_check_update_openroadm_topo 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_31_restore_status_line_port_roadma_srg 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_32_check_update_portmapping_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_33_check_update_openroadm_topo_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_34_check_update_service1_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_35_change_status_line_port_xpdrc 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_36_check_update_portmapping 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_37_check_update_openroadm_topo 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_38_restore_status_line_port_xpdrc 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_39_check_update_portmapping_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_40_check_update_openroadm_topo_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_41_check_update_service1_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_42_change_status_port_roadma_srg 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_43_check_update_portmapping 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_44_check_update_openroadm_topo 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_45_check_update_service1_ok 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_46_delete_eth_service1 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_47_disconnect_xponders_from_roadm 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_48_disconnect_XPDRA 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_49_disconnect_XPDRC 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_50_disconnect_ROADMA 10:38:16 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_51_disconnect_ROADMC 10:38:16 51 errors in 234.00s (0:03:54) 10:38:16 tests_hybrid: exit 1 (234.32 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid pid=21090 10:38:43 ..... [100%] 10:38:46 54 passed in 550.10s (0:09:10) 10:38:47 tests_hybrid: FAIL ✖ in 4 minutes 0.97 seconds 10:38:47 buildcontroller: OK (114.22=setup[8.77]+cmd[105.45] seconds) 10:38:47 sims: OK (12.76=setup[8.88]+cmd[3.88] seconds) 10:38:47 build_karaf_tests121: OK (74.59=setup[8.03]+cmd[66.56] seconds) 10:38:47 testsPCE: OK (288.44=setup[57.79]+cmd[230.65] seconds) 10:38:47 tests121: OK (1334.13=setup[7.58]+cmd[1326.56] seconds) 10:38:47 build_karaf_tests221: OK (74.51=setup[8.10]+cmd[66.41] seconds) 10:38:47 tests_tapi: FAIL code 1 (784.54=setup[7.45]+cmd[777.09] seconds) 10:38:47 tests221: FAIL code 1 (277.66=setup[9.83]+cmd[267.83] seconds) 10:38:47 build_karaf_tests71: OK (76.06=setup[8.03]+cmd[68.03] seconds) 10:38:47 tests71: OK (434.85=setup[7.70]+cmd[427.15] seconds) 10:38:47 build_karaf_tests190: OK (70.07=setup[8.00]+cmd[62.07] seconds) 10:38:47 tests190: OK (386.68=setup[7.48]+cmd[379.20] seconds) 10:38:47 tests_hybrid: FAIL code 1 (240.97=setup[6.65]+cmd[234.32] seconds) 10:38:47 buildlighty: OK (36.28=setup[12.41]+cmd[23.87] seconds) 10:38:47 docs: OK (32.18=setup[29.14]+cmd[3.04] seconds) 10:38:47 docs-linkcheck: OK (33.24=setup[29.11]+cmd[4.13] seconds) 10:38:47 checkbashisms: OK (3.38=setup[2.08]+cmd[0.01,0.08,1.21] seconds) 10:38:47 pre-commit: OK (56.41=setup[2.99]+cmd[0.02,0.01,42.45,10.94] seconds) 10:38:47 pylint: OK (30.49=setup[4.38]+cmd[26.11] seconds) 10:38:47 evaluation failed :( (1812.90 seconds) 10:38:47 + tox_status=255 10:38:47 + echo '---> Completed tox runs' 10:38:47 ---> Completed tox runs 10:38:47 + for i in .tox/*/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 ++ echo .tox/build_karaf_tests121/log 10:38:47 + tox_env=build_karaf_tests121 10:38:47 + cp -r .tox/build_karaf_tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests121 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/build_karaf_tests190/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=build_karaf_tests190 10:38:47 + cp -r .tox/build_karaf_tests190/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests190 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/build_karaf_tests221/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=build_karaf_tests221 10:38:47 + cp -r .tox/build_karaf_tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests221 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/build_karaf_tests71/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=build_karaf_tests71 10:38:47 + cp -r .tox/build_karaf_tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests71 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/buildcontroller/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=buildcontroller 10:38:47 + cp -r .tox/buildcontroller/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildcontroller 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/buildlighty/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=buildlighty 10:38:47 + cp -r .tox/buildlighty/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildlighty 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/checkbashisms/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=checkbashisms 10:38:47 + cp -r .tox/checkbashisms/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/checkbashisms 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/docs-linkcheck/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=docs-linkcheck 10:38:47 + cp -r .tox/docs-linkcheck/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs-linkcheck 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/docs/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=docs 10:38:47 + cp -r .tox/docs/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/pre-commit/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=pre-commit 10:38:47 + cp -r .tox/pre-commit/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pre-commit 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/pylint/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=pylint 10:38:47 + cp -r .tox/pylint/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pylint 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/sims/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=sims 10:38:47 + cp -r .tox/sims/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/sims 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/tests121/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=tests121 10:38:47 + cp -r .tox/tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests121 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/tests190/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=tests190 10:38:47 + cp -r .tox/tests190/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests190 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/tests221/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=tests221 10:38:47 + cp -r .tox/tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests221 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/tests71/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=tests71 10:38:47 + cp -r .tox/tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests71 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/testsPCE/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=testsPCE 10:38:47 + cp -r .tox/testsPCE/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/testsPCE 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/tests_hybrid/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=tests_hybrid 10:38:47 + cp -r .tox/tests_hybrid/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_hybrid 10:38:47 + for i in .tox/*/log 10:38:47 ++ echo .tox/tests_tapi/log 10:38:47 ++ awk -F/ '{print $2}' 10:38:47 + tox_env=tests_tapi 10:38:47 + cp -r .tox/tests_tapi/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_tapi 10:38:47 + DOC_DIR=docs/_build/html 10:38:47 + [[ -d docs/_build/html ]] 10:38:47 + echo '---> Archiving generated docs' 10:38:47 ---> Archiving generated docs 10:38:47 + mv docs/_build/html /w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 10:38:47 + echo '---> tox-run.sh ends' 10:38:47 ---> tox-run.sh ends 10:38:47 + test 255 -eq 0 10:38:47 + exit 255 10:38:47 ++ '[' 1 = 1 ']' 10:38:47 ++ '[' -x /usr/bin/clear_console ']' 10:38:47 ++ /usr/bin/clear_console -q 10:38:47 Build step 'Execute shell' marked build as failure 10:38:47 $ ssh-agent -k 10:38:47 unset SSH_AUTH_SOCK; 10:38:47 unset SSH_AGENT_PID; 10:38:47 echo Agent pid 1570 killed; 10:38:47 [ssh-agent] Stopped. 10:38:47 [PostBuildScript] - [INFO] Executing post build scripts. 10:38:47 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins9832337975408366069.sh 10:38:47 ---> sysstat.sh 10:38:48 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins14294467764343013415.sh 10:38:48 ---> package-listing.sh 10:38:48 ++ facter osfamily 10:38:48 ++ tr '[:upper:]' '[:lower:]' 10:38:48 + OS_FAMILY=debian 10:38:48 + workspace=/w/workspace/transportpce-tox-verify-transportpce-master 10:38:48 + START_PACKAGES=/tmp/packages_start.txt 10:38:48 + END_PACKAGES=/tmp/packages_end.txt 10:38:48 + DIFF_PACKAGES=/tmp/packages_diff.txt 10:38:48 + PACKAGES=/tmp/packages_start.txt 10:38:48 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 10:38:48 + PACKAGES=/tmp/packages_end.txt 10:38:48 + case "${OS_FAMILY}" in 10:38:48 + dpkg -l 10:38:48 + grep '^ii' 10:38:48 + '[' -f /tmp/packages_start.txt ']' 10:38:48 + '[' -f /tmp/packages_end.txt ']' 10:38:48 + diff /tmp/packages_start.txt /tmp/packages_end.txt 10:38:48 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 10:38:48 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 10:38:48 + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 10:38:48 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins7095913853975805541.sh 10:38:48 ---> capture-instance-metadata.sh 10:38:48 Setup pyenv: 10:38:48 system 10:38:48 3.8.20 10:38:48 3.9.20 10:38:48 3.10.15 10:38:48 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:38:49 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-QxZg from file:/tmp/.os_lf_venv 10:38:52 lf-activate-venv(): INFO: Installing: lftools 10:39:05 lf-activate-venv(): INFO: Adding /tmp/venv-QxZg/bin to PATH 10:39:05 INFO: Running in OpenStack, capturing instance metadata 10:39:05 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins15119655692526671009.sh 10:39:05 provisioning config files... 10:39:05 Could not find credentials [logs] for transportpce-tox-verify-transportpce-master #3580 10:39:05 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/transportpce-tox-verify-transportpce-master@tmp/config4781412622612213835tmp 10:39:05 Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] 10:39:05 Run condition [Regular expression match] enabling perform for step [Provide Configuration files] 10:39:05 provisioning config files... 10:39:06 copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials 10:39:06 [EnvInject] - Injecting environment variables from a build step. 10:39:06 [EnvInject] - Injecting as environment variables the properties content 10:39:06 SERVER_ID=logs 10:39:06 10:39:06 [EnvInject] - Variables injected successfully. 10:39:06 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins8978384747161040574.sh 10:39:06 ---> create-netrc.sh 10:39:06 WARN: Log server credential not found. 10:39:06 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins3897718156258435365.sh 10:39:06 ---> python-tools-install.sh 10:39:06 Setup pyenv: 10:39:06 system 10:39:06 3.8.20 10:39:06 3.9.20 10:39:06 3.10.15 10:39:06 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:39:06 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-QxZg from file:/tmp/.os_lf_venv 10:39:08 lf-activate-venv(): INFO: Installing: lftools 10:39:19 lf-activate-venv(): INFO: Adding /tmp/venv-QxZg/bin to PATH 10:39:19 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins16818344949559331533.sh 10:39:19 ---> sudo-logs.sh 10:39:19 Archiving 'sudo' log.. 10:39:20 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins13495766553274223921.sh 10:39:20 ---> job-cost.sh 10:39:20 Setup pyenv: 10:39:20 system 10:39:20 3.8.20 10:39:20 3.9.20 10:39:20 3.10.15 10:39:20 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:39:20 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-QxZg from file:/tmp/.os_lf_venv 10:39:23 lf-activate-venv(): INFO: Installing: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 10:39:29 lf-activate-venv(): INFO: Adding /tmp/venv-QxZg/bin to PATH 10:39:29 INFO: No Stack... 10:39:30 INFO: Retrieving Pricing Info for: v3-standard-4 10:39:30 INFO: Archiving Costs 10:39:30 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins9155410764088610812.sh 10:39:30 ---> logs-deploy.sh 10:39:30 Setup pyenv: 10:39:30 system 10:39:30 3.8.20 10:39:30 3.9.20 10:39:30 3.10.15 10:39:30 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:39:30 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-QxZg from file:/tmp/.os_lf_venv 10:39:32 lf-activate-venv(): INFO: Installing: lftools 10:39:44 lf-activate-venv(): INFO: Adding /tmp/venv-QxZg/bin to PATH 10:39:44 WARNING: Nexus logging server not set 10:39:44 INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/transportpce-tox-verify-transportpce-master/3580/ 10:39:44 INFO: archiving logs to S3 10:39:48 ---> uname -a: 10:39:48 Linux prd-ubuntu2204-docker-4c-16g-51902 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux 10:39:48 10:39:48 10:39:48 ---> lscpu: 10:39:48 Architecture: x86_64 10:39:48 CPU op-mode(s): 32-bit, 64-bit 10:39:48 Address sizes: 40 bits physical, 48 bits virtual 10:39:48 Byte Order: Little Endian 10:39:48 CPU(s): 4 10:39:48 On-line CPU(s) list: 0-3 10:39:48 Vendor ID: AuthenticAMD 10:39:48 Model name: AMD EPYC-Rome Processor 10:39:48 CPU family: 23 10:39:48 Model: 49 10:39:48 Thread(s) per core: 1 10:39:48 Core(s) per socket: 1 10:39:48 Socket(s): 4 10:39:48 Stepping: 0 10:39:48 BogoMIPS: 5599.99 10:39:48 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 10:39:48 Virtualization: AMD-V 10:39:48 Hypervisor vendor: KVM 10:39:48 Virtualization type: full 10:39:48 L1d cache: 128 KiB (4 instances) 10:39:48 L1i cache: 128 KiB (4 instances) 10:39:48 L2 cache: 2 MiB (4 instances) 10:39:48 L3 cache: 64 MiB (4 instances) 10:39:48 NUMA node(s): 1 10:39:48 NUMA node0 CPU(s): 0-3 10:39:48 Vulnerability Gather data sampling: Not affected 10:39:48 Vulnerability Itlb multihit: Not affected 10:39:48 Vulnerability L1tf: Not affected 10:39:48 Vulnerability Mds: Not affected 10:39:48 Vulnerability Meltdown: Not affected 10:39:48 Vulnerability Mmio stale data: Not affected 10:39:48 Vulnerability Reg file data sampling: Not affected 10:39:48 Vulnerability Retbleed: Mitigation; untrained return thunk; SMT disabled 10:39:48 Vulnerability Spec rstack overflow: Mitigation; SMT disabled 10:39:48 Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp 10:39:48 Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 10:39:48 Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 10:39:48 Vulnerability Srbds: Not affected 10:39:48 Vulnerability Tsx async abort: Not affected 10:39:48 10:39:48 10:39:48 ---> nproc: 10:39:48 4 10:39:48 10:39:48 10:39:48 ---> df -h: 10:39:48 Filesystem Size Used Avail Use% Mounted on 10:39:48 tmpfs 1.6G 1.1M 1.6G 1% /run 10:39:48 /dev/vda1 78G 17G 61G 22% / 10:39:48 tmpfs 7.9G 0 7.9G 0% /dev/shm 10:39:48 tmpfs 5.0M 0 5.0M 0% /run/lock 10:39:48 /dev/vda15 105M 6.1M 99M 6% /boot/efi 10:39:48 tmpfs 1.6G 4.0K 1.6G 1% /run/user/1001 10:39:48 10:39:48 10:39:48 ---> free -m: 10:39:48 total used free shared buff/cache available 10:39:48 Mem: 15989 1502 12089 3 2397 14143 10:39:48 Swap: 1023 1 1022 10:39:48 10:39:48 10:39:48 ---> ip addr: 10:39:48 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 10:39:48 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 10:39:48 inet 127.0.0.1/8 scope host lo 10:39:48 valid_lft forever preferred_lft forever 10:39:48 inet6 ::1/128 scope host 10:39:48 valid_lft forever preferred_lft forever 10:39:48 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 10:39:48 link/ether fa:16:3e:03:21:37 brd ff:ff:ff:ff:ff:ff 10:39:48 altname enp0s3 10:39:48 inet 10.30.171.124/23 metric 100 brd 10.30.171.255 scope global dynamic ens3 10:39:48 valid_lft 84407sec preferred_lft 84407sec 10:39:48 inet6 fe80::f816:3eff:fe03:2137/64 scope link 10:39:48 valid_lft forever preferred_lft forever 10:39:48 3: docker0: mtu 1458 qdisc noqueue state DOWN group default 10:39:48 link/ether 02:42:ce:52:4e:d3 brd ff:ff:ff:ff:ff:ff 10:39:48 inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 10:39:48 valid_lft forever preferred_lft forever 10:39:48 10:39:48 10:39:48 ---> sar -b -r -n DEV: 10:39:48 Linux 5.15.0-131-generic (prd-ubuntu2204-docker-4c-16g-51902) 09/12/25 _x86_64_ (4 CPU) 10:39:48 10:39:48 10:06:37 LINUX RESTART (4 CPU) 10:39:48 10:39:48 10:10:01 tps rtps wtps dtps bread/s bwrtn/s bdscd/s 10:39:48 10:20:01 80.91 3.60 72.56 4.75 712.33 31578.50 24478.00 10:39:48 10:30:09 71.94 30.52 25.54 15.89 598.32 1700.42 212508.45 10:39:48 Average: 76.40 17.14 48.90 10.35 654.96 16545.04 119087.41 10:39:48 10:39:48 10:10:01 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 10:39:48 10:20:01 168292 4765880 11159844 68.16 242860 4244964 14192028 81.46 2142952 13377556 1284 10:39:48 10:30:09 9232632 11096344 4844916 29.59 230372 1740932 6085080 34.93 1375836 5329852 79716 10:39:48 Average: 4700462 7931112 8002380 48.87 236616 2992948 10138554 58.19 1759394 9353704 40500 10:39:48 10:39:48 10:10:01 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 10:39:48 10:20:01 lo 7.52 7.52 7.60 7.60 0.00 0.00 0.00 0.00 10:39:48 10:20:01 ens3 58.15 40.15 1031.44 4.31 0.00 0.00 0.00 0.00 10:39:48 10:20:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:39:48 10:30:09 lo 31.03 31.03 16.30 16.30 0.00 0.00 0.00 0.00 10:39:48 10:30:09 ens3 1.93 1.69 0.50 0.48 0.00 0.00 0.00 0.00 10:39:48 10:30:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:39:48 Average: lo 19.35 19.35 11.98 11.98 0.00 0.00 0.00 0.00 10:39:48 Average: ens3 29.86 20.80 512.71 2.38 0.00 0.00 0.00 0.00 10:39:48 Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:39:48 10:39:48 10:39:48 ---> sar -P ALL: 10:39:48 Linux 5.15.0-131-generic (prd-ubuntu2204-docker-4c-16g-51902) 09/12/25 _x86_64_ (4 CPU) 10:39:48 10:39:48 10:06:37 LINUX RESTART (4 CPU) 10:39:48 10:39:48 10:10:01 CPU %user %nice %system %iowait %steal %idle 10:39:48 10:20:01 all 50.05 0.00 2.65 1.99 0.11 45.21 10:39:48 10:20:01 0 48.52 0.00 2.60 1.73 0.11 47.04 10:39:48 10:20:01 1 53.12 0.00 2.86 2.16 0.12 41.75 10:39:48 10:20:01 2 47.65 0.00 2.50 2.63 0.10 47.12 10:39:48 10:20:01 3 50.91 0.00 2.64 1.42 0.11 44.91 10:39:48 10:30:09 all 36.43 0.00 1.75 0.14 0.09 61.58 10:39:48 10:30:09 0 36.77 0.00 1.70 0.23 0.09 61.20 10:39:48 10:30:09 1 36.07 0.00 1.72 0.05 0.09 62.06 10:39:48 10:30:09 2 37.52 0.00 1.75 0.14 0.09 60.50 10:39:48 10:30:09 3 35.35 0.00 1.83 0.15 0.09 62.57 10:39:48 Average: all 43.19 0.00 2.20 1.06 0.10 53.45 10:39:48 Average: 0 42.61 0.00 2.15 0.98 0.10 54.17 10:39:48 Average: 1 44.53 0.00 2.29 1.10 0.11 51.98 10:39:48 Average: 2 42.55 0.00 2.12 1.37 0.10 53.85 10:39:48 Average: 3 43.07 0.00 2.24 0.78 0.10 53.81 10:39:48 10:39:48 10:39:48