08:59:40 Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/transportpce/+/113937 08:59:40 Running as SYSTEM 08:59:40 [EnvInject] - Loading node environment variables. 08:59:40 Building remotely on prd-ubuntu2004-docker-4c-16g-43706 (ubuntu2004-docker-4c-16g) in workspace /w/workspace/transportpce-tox-verify-transportpce-master 08:59:41 [ssh-agent] Looking for ssh-agent implementation... 08:59:41 [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) 08:59:41 $ ssh-agent 08:59:41 SSH_AUTH_SOCK=/tmp/ssh-CsyX80Sph8wN/agent.12448 08:59:41 SSH_AGENT_PID=12450 08:59:41 [ssh-agent] Started. 08:59:41 Running ssh-add (command line suppressed) 08:59:41 Identity added: /w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_16808208851554262102.key (/w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_16808208851554262102.key) 08:59:41 [ssh-agent] Using credentials jenkins (jenkins-ssh) 08:59:41 The recommended git tool is: NONE 08:59:43 using credential jenkins-ssh 08:59:44 Wiping out workspace first. 08:59:44 Cloning the remote Git repository 08:59:44 Cloning repository git://devvexx.opendaylight.org/mirror/transportpce 08:59:44 > git init /w/workspace/transportpce-tox-verify-transportpce-master # timeout=10 08:59:44 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 08:59:44 > git --version # timeout=10 08:59:44 > git --version # 'git version 2.25.1' 08:59:44 using GIT_SSH to set credentials jenkins-ssh 08:59:44 Verifying host key using known hosts file 08:59:44 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. 08:59:44 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce +refs/heads/*:refs/remotes/origin/* # timeout=10 08:59:47 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 08:59:47 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 08:59:47 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 08:59:47 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 08:59:47 using GIT_SSH to set credentials jenkins-ssh 08:59:47 Verifying host key using known hosts file 08:59:47 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. 08:59:47 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce refs/changes/37/113937/11 # timeout=10 08:59:47 > git rev-parse 285d456fa549e02900e626e79be13d901b49131a^{commit} # timeout=10 08:59:47 JENKINS-19022: warning: possible memory leak due to Git plugin usage; see: https://plugins.jenkins.io/git/#remove-git-plugin-buildsbybranch-builddata-script 08:59:47 Checking out Revision 285d456fa549e02900e626e79be13d901b49131a (refs/changes/37/113937/11) 08:59:47 > git config core.sparsecheckout # timeout=10 08:59:47 > git checkout -f 285d456fa549e02900e626e79be13d901b49131a # timeout=10 08:59:48 Commit message: "Add Func Test for Topology extension" 08:59:48 > git rev-parse FETCH_HEAD^{commit} # timeout=10 08:59:48 > git rev-list --no-walk fc580132e0506837d64557e4ab9296915c933976 # timeout=10 08:59:48 > git remote # timeout=10 08:59:48 > git submodule init # timeout=10 08:59:48 > git submodule sync # timeout=10 08:59:48 > git config --get remote.origin.url # timeout=10 08:59:48 > git submodule init # timeout=10 08:59:48 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 08:59:48 ERROR: No submodules found. 08:59:51 provisioning config files... 08:59:51 copy managed file [npmrc] to file:/home/jenkins/.npmrc 08:59:51 copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf 08:59:51 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins8268614464879409732.sh 08:59:51 ---> python-tools-install.sh 08:59:51 Setup pyenv: 08:59:52 * system (set by /opt/pyenv/version) 08:59:52 * 3.8.13 (set by /opt/pyenv/version) 08:59:52 * 3.9.13 (set by /opt/pyenv/version) 08:59:52 * 3.10.13 (set by /opt/pyenv/version) 08:59:52 * 3.11.7 (set by /opt/pyenv/version) 08:59:56 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-xPlt 08:59:56 lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv 08:59:59 lf-activate-venv(): INFO: Installing: lftools 09:00:30 lf-activate-venv(): INFO: Adding /tmp/venv-xPlt/bin to PATH 09:00:30 Generating Requirements File 09:00:52 Python 3.11.7 09:00:52 pip 24.2 from /tmp/venv-xPlt/lib/python3.11/site-packages/pip (python 3.11) 09:00:53 appdirs==1.4.4 09:00:53 argcomplete==3.5.1 09:00:53 aspy.yaml==1.3.0 09:00:53 attrs==24.2.0 09:00:53 autopage==0.5.2 09:00:53 beautifulsoup4==4.12.3 09:00:53 boto3==1.35.43 09:00:53 botocore==1.35.43 09:00:53 bs4==0.0.2 09:00:53 cachetools==5.5.0 09:00:53 certifi==2024.8.30 09:00:53 cffi==1.17.1 09:00:53 cfgv==3.4.0 09:00:53 chardet==5.2.0 09:00:53 charset-normalizer==3.4.0 09:00:53 click==8.1.7 09:00:53 cliff==4.7.0 09:00:53 cmd2==2.4.3 09:00:53 cryptography==3.3.2 09:00:53 debtcollector==3.0.0 09:00:53 decorator==5.1.1 09:00:53 defusedxml==0.7.1 09:00:53 Deprecated==1.2.14 09:00:53 distlib==0.3.9 09:00:53 dnspython==2.7.0 09:00:53 docker==4.2.2 09:00:53 dogpile.cache==1.3.3 09:00:53 durationpy==0.9 09:00:53 email_validator==2.2.0 09:00:53 filelock==3.16.1 09:00:53 future==1.0.0 09:00:53 gitdb==4.0.11 09:00:53 GitPython==3.1.43 09:00:53 google-auth==2.35.0 09:00:53 httplib2==0.22.0 09:00:53 identify==2.6.1 09:00:53 idna==3.10 09:00:53 importlib-resources==1.5.0 09:00:53 iso8601==2.1.0 09:00:53 Jinja2==3.1.4 09:00:53 jmespath==1.0.1 09:00:53 jsonpatch==1.33 09:00:53 jsonpointer==3.0.0 09:00:53 jsonschema==4.23.0 09:00:53 jsonschema-specifications==2024.10.1 09:00:53 keystoneauth1==5.8.0 09:00:53 kubernetes==31.0.0 09:00:53 lftools==0.37.10 09:00:53 lxml==5.3.0 09:00:53 MarkupSafe==3.0.1 09:00:53 msgpack==1.1.0 09:00:53 multi_key_dict==2.0.3 09:00:53 munch==4.0.0 09:00:53 netaddr==1.3.0 09:00:53 netifaces==0.11.0 09:00:53 niet==1.4.2 09:00:53 nodeenv==1.9.1 09:00:53 oauth2client==4.1.3 09:00:53 oauthlib==3.2.2 09:00:53 openstacksdk==4.0.0 09:00:53 os-client-config==2.1.0 09:00:53 os-service-types==1.7.0 09:00:53 osc-lib==3.1.0 09:00:53 oslo.config==9.6.0 09:00:53 oslo.context==5.6.0 09:00:53 oslo.i18n==6.4.0 09:00:53 oslo.log==6.1.2 09:00:53 oslo.serialization==5.5.0 09:00:53 oslo.utils==7.3.0 09:00:53 packaging==24.1 09:00:53 pbr==6.1.0 09:00:53 platformdirs==4.3.6 09:00:53 prettytable==3.11.0 09:00:53 pyasn1==0.6.1 09:00:53 pyasn1_modules==0.4.1 09:00:53 pycparser==2.22 09:00:53 pygerrit2==2.0.15 09:00:53 PyGithub==2.4.0 09:00:53 PyJWT==2.9.0 09:00:53 PyNaCl==1.5.0 09:00:53 pyparsing==2.4.7 09:00:53 pyperclip==1.9.0 09:00:53 pyrsistent==0.20.0 09:00:53 python-cinderclient==9.6.0 09:00:53 python-dateutil==2.9.0.post0 09:00:53 python-heatclient==4.0.0 09:00:53 python-jenkins==1.8.2 09:00:53 python-keystoneclient==5.5.0 09:00:53 python-magnumclient==4.7.0 09:00:53 python-openstackclient==7.1.3 09:00:53 python-swiftclient==4.6.0 09:00:53 PyYAML==6.0.2 09:00:53 referencing==0.35.1 09:00:53 requests==2.32.3 09:00:53 requests-oauthlib==2.0.0 09:00:53 requestsexceptions==1.4.0 09:00:53 rfc3986==2.0.0 09:00:53 rpds-py==0.20.0 09:00:53 rsa==4.9 09:00:53 ruamel.yaml==0.18.6 09:00:53 ruamel.yaml.clib==0.2.8 09:00:53 s3transfer==0.10.3 09:00:53 simplejson==3.19.3 09:00:53 six==1.16.0 09:00:53 smmap==5.0.1 09:00:53 soupsieve==2.6 09:00:53 stevedore==5.3.0 09:00:53 tabulate==0.9.0 09:00:53 toml==0.10.2 09:00:53 tomlkit==0.13.2 09:00:53 tqdm==4.66.5 09:00:53 typing_extensions==4.12.2 09:00:53 tzdata==2024.2 09:00:53 urllib3==1.26.20 09:00:53 virtualenv==20.27.0 09:00:53 wcwidth==0.2.13 09:00:53 websocket-client==1.8.0 09:00:53 wrapt==1.16.0 09:00:53 xdg==6.0.0 09:00:53 xmltodict==0.14.2 09:00:53 yq==3.4.3 09:00:53 [EnvInject] - Injecting environment variables from a build step. 09:00:53 [EnvInject] - Injecting as environment variables the properties content 09:00:53 PYTHON=python3 09:00:53 09:00:53 [EnvInject] - Variables injected successfully. 09:00:53 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins14911014415596186524.sh 09:00:53 ---> tox-install.sh 09:00:53 + source /home/jenkins/lf-env.sh 09:00:53 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 09:00:53 ++ mktemp -d /tmp/venv-XXXX 09:00:53 + lf_venv=/tmp/venv-eTb7 09:00:53 + local venv_file=/tmp/.os_lf_venv 09:00:53 + local python=python3 09:00:53 + local options 09:00:53 + local set_path=true 09:00:53 + local install_args= 09:00:53 ++ 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 09:00:53 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 09:00:53 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 09:00:53 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 09:00:53 + true 09:00:53 + case $1 in 09:00:53 + venv_file=/tmp/.toxenv 09:00:53 + shift 2 09:00:53 + true 09:00:53 + case $1 in 09:00:53 + shift 09:00:53 + break 09:00:53 + case $python in 09:00:53 + local pkg_list= 09:00:53 + [[ -d /opt/pyenv ]] 09:00:53 + echo 'Setup pyenv:' 09:00:53 Setup pyenv: 09:00:53 + export PYENV_ROOT=/opt/pyenv 09:00:53 + PYENV_ROOT=/opt/pyenv 09:00:53 + 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 09:00:53 + 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 09:00:53 + pyenv versions 09:00:53 system 09:00:53 3.8.13 09:00:53 3.9.13 09:00:53 3.10.13 09:00:53 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 09:00:53 + command -v pyenv 09:00:53 ++ pyenv init - --no-rehash 09:00:53 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 09:00:53 for i in ${!paths[@]}; do 09:00:53 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 09:00:53 fi; done; 09:00:53 echo "${paths[*]}"'\'')" 09:00:53 export PATH="/opt/pyenv/shims:${PATH}" 09:00:53 export PYENV_SHELL=bash 09:00:53 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 09:00:53 pyenv() { 09:00:53 local command 09:00:53 command="${1:-}" 09:00:53 if [ "$#" -gt 0 ]; then 09:00:53 shift 09:00:53 fi 09:00:53 09:00:53 case "$command" in 09:00:53 rehash|shell) 09:00:53 eval "$(pyenv "sh-$command" "$@")" 09:00:53 ;; 09:00:53 *) 09:00:53 command pyenv "$command" "$@" 09:00:53 ;; 09:00:53 esac 09:00:53 }' 09:00:53 +++ bash --norc -ec 'IFS=:; paths=($PATH); 09:00:53 for i in ${!paths[@]}; do 09:00:53 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 09:00:53 fi; done; 09:00:53 echo "${paths[*]}"' 09:00:53 ++ 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 09:00:53 ++ 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 09:00:53 ++ 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 09:00:53 ++ export PYENV_SHELL=bash 09:00:53 ++ PYENV_SHELL=bash 09:00:53 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 09:00:53 +++ complete -F _pyenv pyenv 09:00:53 ++ lf-pyver python3 09:00:53 ++ local py_version_xy=python3 09:00:53 ++ local py_version_xyz= 09:00:53 ++ pyenv versions 09:00:53 ++ local command 09:00:53 ++ command=versions 09:00:53 ++ '[' 1 -gt 0 ']' 09:00:53 ++ shift 09:00:53 ++ case "$command" in 09:00:53 ++ command pyenv versions 09:00:53 ++ pyenv versions 09:00:53 ++ sed 's/^[ *]* //' 09:00:53 ++ awk '{ print $1 }' 09:00:53 ++ grep -E '^[0-9.]*[0-9]$' 09:00:53 ++ [[ ! -s /tmp/.pyenv_versions ]] 09:00:53 +++ grep '^3' /tmp/.pyenv_versions 09:00:53 +++ sort -V 09:00:53 +++ tail -n 1 09:00:53 ++ py_version_xyz=3.11.7 09:00:53 ++ [[ -z 3.11.7 ]] 09:00:53 ++ echo 3.11.7 09:00:53 ++ return 0 09:00:53 + pyenv local 3.11.7 09:00:53 + local command 09:00:53 + command=local 09:00:53 + '[' 2 -gt 0 ']' 09:00:53 + shift 09:00:53 + case "$command" in 09:00:53 + command pyenv local 3.11.7 09:00:53 + pyenv local 3.11.7 09:00:53 + for arg in "$@" 09:00:53 + case $arg in 09:00:53 + pkg_list+='tox ' 09:00:53 + for arg in "$@" 09:00:53 + case $arg in 09:00:53 + pkg_list+='virtualenv ' 09:00:53 + for arg in "$@" 09:00:53 + case $arg in 09:00:53 + pkg_list+='urllib3~=1.26.15 ' 09:00:53 + [[ -f /tmp/.toxenv ]] 09:00:53 + [[ ! -f /tmp/.toxenv ]] 09:00:53 + [[ -n '' ]] 09:00:53 + python3 -m venv /tmp/venv-eTb7 09:00:57 + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-eTb7' 09:00:57 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-eTb7 09:00:57 + echo /tmp/venv-eTb7 09:00:57 + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' 09:00:57 lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv 09:00:57 + /tmp/venv-eTb7/bin/python3 -m pip install --upgrade --quiet pip virtualenv 09:01:00 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 09:01:00 + echo 'lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 ' 09:01:00 lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 09:01:00 + /tmp/venv-eTb7/bin/python3 -m pip install --upgrade --quiet --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 09:01:03 + type python3 09:01:03 + true 09:01:03 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-eTb7/bin to PATH' 09:01:03 lf-activate-venv(): INFO: Adding /tmp/venv-eTb7/bin to PATH 09:01:03 + PATH=/tmp/venv-eTb7/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 09:01:03 + return 0 09:01:03 + python3 --version 09:01:03 Python 3.11.7 09:01:03 + python3 -m pip --version 09:01:03 pip 24.2 from /tmp/venv-eTb7/lib/python3.11/site-packages/pip (python 3.11) 09:01:03 + python3 -m pip freeze 09:01:03 cachetools==5.5.0 09:01:03 chardet==5.2.0 09:01:03 colorama==0.4.6 09:01:03 distlib==0.3.9 09:01:03 filelock==3.16.1 09:01:03 packaging==24.1 09:01:03 platformdirs==4.3.6 09:01:03 pluggy==1.5.0 09:01:03 pyproject-api==1.8.0 09:01:03 tox==4.23.0 09:01:03 urllib3==1.26.20 09:01:03 virtualenv==20.27.0 09:01:03 [transportpce-tox-verify-transportpce-master] $ /bin/sh -xe /tmp/jenkins9031189804638750418.sh 09:01:03 [EnvInject] - Injecting environment variables from a build step. 09:01:03 [EnvInject] - Injecting as environment variables the properties content 09:01:03 PARALLEL=True 09:01:03 09:01:03 [EnvInject] - Variables injected successfully. 09:01:03 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins9554978294250682262.sh 09:01:03 ---> tox-run.sh 09:01:03 + 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 09:01:03 + ARCHIVE_TOX_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 09:01:03 + ARCHIVE_DOC_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 09:01:03 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 09:01:03 + cd /w/workspace/transportpce-tox-verify-transportpce-master/. 09:01:03 + source /home/jenkins/lf-env.sh 09:01:03 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 09:01:03 ++ mktemp -d /tmp/venv-XXXX 09:01:03 + lf_venv=/tmp/venv-Rm05 09:01:03 + local venv_file=/tmp/.os_lf_venv 09:01:03 + local python=python3 09:01:03 + local options 09:01:03 + local set_path=true 09:01:03 + local install_args= 09:01:03 ++ 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 09:01:03 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 09:01:03 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 09:01:03 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 09:01:03 + true 09:01:03 + case $1 in 09:01:03 + venv_file=/tmp/.toxenv 09:01:03 + shift 2 09:01:03 + true 09:01:03 + case $1 in 09:01:03 + shift 09:01:03 + break 09:01:03 + case $python in 09:01:03 + local pkg_list= 09:01:03 + [[ -d /opt/pyenv ]] 09:01:03 + echo 'Setup pyenv:' 09:01:03 Setup pyenv: 09:01:03 + export PYENV_ROOT=/opt/pyenv 09:01:03 + PYENV_ROOT=/opt/pyenv 09:01:03 + 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 09:01:03 + 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 09:01:03 + pyenv versions 09:01:03 system 09:01:03 3.8.13 09:01:03 3.9.13 09:01:03 3.10.13 09:01:03 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 09:01:03 + command -v pyenv 09:01:03 ++ pyenv init - --no-rehash 09:01:03 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 09:01:03 for i in ${!paths[@]}; do 09:01:03 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 09:01:03 fi; done; 09:01:03 echo "${paths[*]}"'\'')" 09:01:03 export PATH="/opt/pyenv/shims:${PATH}" 09:01:03 export PYENV_SHELL=bash 09:01:03 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 09:01:03 pyenv() { 09:01:03 local command 09:01:03 command="${1:-}" 09:01:03 if [ "$#" -gt 0 ]; then 09:01:03 shift 09:01:03 fi 09:01:03 09:01:03 case "$command" in 09:01:03 rehash|shell) 09:01:03 eval "$(pyenv "sh-$command" "$@")" 09:01:03 ;; 09:01:03 *) 09:01:03 command pyenv "$command" "$@" 09:01:03 ;; 09:01:03 esac 09:01:03 }' 09:01:03 +++ bash --norc -ec 'IFS=:; paths=($PATH); 09:01:03 for i in ${!paths[@]}; do 09:01:03 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 09:01:03 fi; done; 09:01:03 echo "${paths[*]}"' 09:01:03 ++ 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 09:01:03 ++ 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 09:01:03 ++ 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 09:01:03 ++ export PYENV_SHELL=bash 09:01:03 ++ PYENV_SHELL=bash 09:01:03 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 09:01:03 +++ complete -F _pyenv pyenv 09:01:03 ++ lf-pyver python3 09:01:03 ++ local py_version_xy=python3 09:01:03 ++ local py_version_xyz= 09:01:03 ++ pyenv versions 09:01:03 ++ local command 09:01:03 ++ command=versions 09:01:03 ++ '[' 1 -gt 0 ']' 09:01:03 ++ shift 09:01:03 ++ case "$command" in 09:01:03 ++ command pyenv versions 09:01:03 ++ pyenv versions 09:01:03 ++ awk '{ print $1 }' 09:01:03 ++ sed 's/^[ *]* //' 09:01:03 ++ grep -E '^[0-9.]*[0-9]$' 09:01:03 ++ [[ ! -s /tmp/.pyenv_versions ]] 09:01:03 +++ grep '^3' /tmp/.pyenv_versions 09:01:03 +++ sort -V 09:01:03 +++ tail -n 1 09:01:03 ++ py_version_xyz=3.11.7 09:01:03 ++ [[ -z 3.11.7 ]] 09:01:03 ++ echo 3.11.7 09:01:03 ++ return 0 09:01:03 + pyenv local 3.11.7 09:01:03 + local command 09:01:03 + command=local 09:01:03 + '[' 2 -gt 0 ']' 09:01:03 + shift 09:01:03 + case "$command" in 09:01:03 + command pyenv local 3.11.7 09:01:03 + pyenv local 3.11.7 09:01:03 + for arg in "$@" 09:01:03 + case $arg in 09:01:03 + pkg_list+='tox ' 09:01:03 + for arg in "$@" 09:01:03 + case $arg in 09:01:03 + pkg_list+='virtualenv ' 09:01:03 + for arg in "$@" 09:01:03 + case $arg in 09:01:03 + pkg_list+='urllib3~=1.26.15 ' 09:01:03 + [[ -f /tmp/.toxenv ]] 09:01:03 ++ cat /tmp/.toxenv 09:01:03 + lf_venv=/tmp/venv-eTb7 09:01:03 + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-eTb7 from' file:/tmp/.toxenv 09:01:03 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-eTb7 from file:/tmp/.toxenv 09:01:03 + /tmp/venv-eTb7/bin/python3 -m pip install --upgrade --quiet pip virtualenv 09:01:04 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 09:01:04 + echo 'lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 ' 09:01:04 lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 09:01:04 + /tmp/venv-eTb7/bin/python3 -m pip install --upgrade --quiet --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 09:01:05 + type python3 09:01:05 + true 09:01:05 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-eTb7/bin to PATH' 09:01:05 lf-activate-venv(): INFO: Adding /tmp/venv-eTb7/bin to PATH 09:01:05 + PATH=/tmp/venv-eTb7/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 09:01:05 + return 0 09:01:05 + [[ -d /opt/pyenv ]] 09:01:05 + echo '---> Setting up pyenv' 09:01:05 ---> Setting up pyenv 09:01:05 + export PYENV_ROOT=/opt/pyenv 09:01:05 + PYENV_ROOT=/opt/pyenv 09:01:05 + export PATH=/opt/pyenv/bin:/tmp/venv-eTb7/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 09:01:05 + PATH=/opt/pyenv/bin:/tmp/venv-eTb7/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 09:01:05 ++ pwd 09:01:05 + PYTHONPATH=/w/workspace/transportpce-tox-verify-transportpce-master 09:01:05 + export PYTHONPATH 09:01:05 + export TOX_TESTENV_PASSENV=PYTHONPATH 09:01:05 + TOX_TESTENV_PASSENV=PYTHONPATH 09:01:05 + tox --version 09:01:06 4.23.0 from /tmp/venv-eTb7/lib/python3.11/site-packages/tox/__init__.py 09:01:06 + PARALLEL=True 09:01:06 + TOX_OPTIONS_LIST= 09:01:06 + [[ -n '' ]] 09:01:06 + case ${PARALLEL,,} in 09:01:06 + TOX_OPTIONS_LIST=' --parallel auto --parallel-live' 09:01:06 + tox --parallel auto --parallel-live 09:01:06 + tee -a /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tox.log 09:01:07 docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt 09:01:07 checkbashisms: freeze> python -m pip freeze --all 09:01:07 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 09:01:07 docs: install_deps> python -I -m pip install -r docs/requirements.txt 09:01:08 checkbashisms: pip==24.2,setuptools==75.2.0,wheel==0.44.0 09:01:08 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 09:01:08 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)' 09:01:08 checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + 09:01:09 script ./reflectwarn.sh does not appear to have a #! interpreter line; 09:01:09 you may get strange results 09:01:09 checkbashisms: OK ✔ in 3.07 seconds 09:01:09 pre-commit: install_deps> python -I -m pip install pre-commit 09:01:12 pre-commit: freeze> python -m pip freeze --all 09:01:12 pre-commit: cfgv==3.4.0,distlib==0.3.9,filelock==3.16.1,identify==2.6.1,nodeenv==1.9.1,pip==24.2,platformdirs==4.3.6,pre_commit==4.0.1,PyYAML==6.0.2,setuptools==75.2.0,virtualenv==20.27.0,wheel==0.44.0 09:01:12 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 09:01:12 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)' 09:01:12 /usr/bin/cpan 09:01:12 pre-commit: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure 09:01:13 [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. 09:01:13 [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. 09:01:13 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 09:01:13 [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. 09:01:13 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. 09:01:13 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. 09:01:14 buildcontroller: freeze> python -m pip freeze --all 09:01:14 [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. 09:01:14 buildcontroller: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 09:01:14 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh 09:01:14 + update-java-alternatives -l 09:01:14 java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 09:01:14 java-1.12.0-openjdk-amd64 1211 /usr/lib/jvm/java-1.12.0-openjdk-amd64 09:01:14 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 09:01:14 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 09:01:14 java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64 09:01:14 + sudo update-java-alternatives -s java-1.21.0-openjdk-amd64 09:01:14 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. 09:01:14 + sed -n ;s/.* version "\(.*\)\.\(.*\)\..*".*$/\1/p; 09:01:14 + java -version 09:01:14 [INFO] Initializing environment for https://github.com/perltidy/perltidy. 09:01:15 + JAVA_VER=21 09:01:15 + echo 21 09:01:15 21 09:01:15 + javac -version 09:01:15 + sed -n ;s/javac \(.*\)\.\(.*\)\..*.*$/\1/p; 09:01:15 + JAVAC_VER=21 09:01:15 + echo 21 09:01:15 + [ 21 -ge 21 ] 09:01:15 + [ 21 -ge 21 ] 09:01:15 + echo ok, java is 21 or newer 09:01:15 + wget -nv https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz -P /tmp 09:01:15 21 09:01:15 ok, java is 21 or newer 09:01:15 2024-10-18 09:01:15 URL:https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz [9083702/9083702] -> "/tmp/apache-maven-3.9.8-bin.tar.gz" [1] 09:01:15 + sudo mkdir -p /opt 09:01:15 + sudo tar xf /tmp/apache-maven-3.9.8-bin.tar.gz -C /opt 09:01:15 + sudo ln -s /opt/apache-maven-3.9.8 /opt/maven 09:01:15 + sudo ln -s /opt/maven/bin/mvn /usr/bin/mvn 09:01:15 + mvn --version 09:01:15 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 09:01:15 [INFO] Once installed this environment will be reused. 09:01:15 [INFO] This may take a few minutes... 09:01:15 Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256) 09:01:15 Maven home: /opt/maven 09:01:15 Java version: 21.0.4, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 09:01:15 Default locale: en, platform encoding: UTF-8 09:01:15 OS name: "linux", version: "5.4.0-190-generic", arch: "amd64", family: "unix" 09:01:16 NOTE: Picked up JDK_JAVA_OPTIONS: 09:01:16 --add-opens=java.base/java.io=ALL-UNNAMED 09:01:16 --add-opens=java.base/java.lang=ALL-UNNAMED 09:01:16 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 09:01:16 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 09:01:16 --add-opens=java.base/java.net=ALL-UNNAMED 09:01:16 --add-opens=java.base/java.nio=ALL-UNNAMED 09:01:16 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 09:01:16 --add-opens=java.base/java.nio.file=ALL-UNNAMED 09:01:16 --add-opens=java.base/java.util=ALL-UNNAMED 09:01:16 --add-opens=java.base/java.util.jar=ALL-UNNAMED 09:01:16 --add-opens=java.base/java.util.stream=ALL-UNNAMED 09:01:16 --add-opens=java.base/java.util.zip=ALL-UNNAMED 09:01:16 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 09:01:16 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 09:01:16 -Xlog:disable 09:01:20 [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. 09:01:20 [INFO] Once installed this environment will be reused. 09:01:20 [INFO] This may take a few minutes... 09:01:27 [INFO] Installing environment for https://github.com/pre-commit/mirrors-autopep8. 09:01:27 [INFO] Once installed this environment will be reused. 09:01:27 [INFO] This may take a few minutes... 09:01:30 [INFO] Installing environment for https://github.com/perltidy/perltidy. 09:01:30 [INFO] Once installed this environment will be reused. 09:01:30 [INFO] This may take a few minutes... 09:01:38 docs: freeze> python -m pip freeze --all 09:01:38 docs-linkcheck: freeze> python -m pip freeze --all 09:01:39 docs: alabaster==1.0.0,attrs==24.2.0,babel==2.16.0,blockdiag==3.0.0,certifi==2024.8.30,charset-normalizer==3.4.0,contourpy==1.3.0,cycler==0.12.1,docutils==0.21.2,fonttools==4.54.1,funcparserlib==2.0.0a0,future==1.0.0,idna==3.10,imagesize==1.4.1,Jinja2==3.1.4,jsonschema==3.2.0,kiwisolver==1.4.7,lfdocs-conf==0.9.0,MarkupSafe==3.0.1,matplotlib==3.9.2,numpy==2.1.2,nwdiag==3.0.0,packaging==24.1,pillow==11.0.0,pip==24.2,Pygments==2.18.0,pyparsing==3.2.0,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.3,requests-file==1.5.1,seqdiag==3.0.0,setuptools==75.2.0,six==1.16.0,snowballstemmer==2.2.0,Sphinx==8.1.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.1,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.30,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.2.3,webcolors==24.8.0,wheel==0.44.0 09:01:39 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 09:01:39 docs-linkcheck: alabaster==1.0.0,attrs==24.2.0,babel==2.16.0,blockdiag==3.0.0,certifi==2024.8.30,charset-normalizer==3.4.0,contourpy==1.3.0,cycler==0.12.1,docutils==0.21.2,fonttools==4.54.1,funcparserlib==2.0.0a0,future==1.0.0,idna==3.10,imagesize==1.4.1,Jinja2==3.1.4,jsonschema==3.2.0,kiwisolver==1.4.7,lfdocs-conf==0.9.0,MarkupSafe==3.0.1,matplotlib==3.9.2,numpy==2.1.2,nwdiag==3.0.0,packaging==24.1,pillow==11.0.0,pip==24.2,Pygments==2.18.0,pyparsing==3.2.0,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.3,requests-file==1.5.1,seqdiag==3.0.0,setuptools==75.2.0,six==1.16.0,snowballstemmer==2.2.0,Sphinx==8.1.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.1,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.30,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.2.3,webcolors==24.8.0,wheel==0.44.0 09:01:39 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 09:01:41 docs: OK ✔ in 35.33 seconds 09:01:41 pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' 09:01:42 trim trailing whitespace.................................................Passed 09:01:43 Tabs remover.............................................................Passed 09:01:43 autopep8.................................................................docs-linkcheck: OK ✔ in 36.25 seconds 09:01:47 pylint: freeze> python -m pip freeze --all 09:01:47 pylint: astroid==3.3.5,dill==0.3.9,isort==5.13.2,mccabe==0.7.0,pip==24.2,platformdirs==4.3.6,pylint==3.3.1,setuptools==75.2.0,tomlkit==0.13.2,wheel==0.44.0 09:01:47 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}$' '{}' + 09:01:47 Passed 09:01:47 perltidy.................................................................Passed 09:01:48 pre-commit: commands[3] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run gitlint-ci --hook-stage manual 09:01:48 [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. 09:01:49 [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. 09:01:49 [INFO] Installing environment for https://github.com/jorisroovers/gitlint. 09:01:49 [INFO] Once installed this environment will be reused. 09:01:49 [INFO] This may take a few minutes... 09:01:56 gitlint..................................................................Passed 09:02:08 ************* Module 1.2.1.test03_topology 09:02:08 transportpce_tests/1.2.1/test03_topology.py:430:4: R0912: Too many branches (13/12) (too-many-branches) 09:02:08 ************* Module tapi.test03_tapi_device_change_notifications 09:02:08 transportpce_tests/tapi/test03_tapi_device_change_notifications.py:14:0: C0302: Too many lines in module (1003/1000) (too-many-lines) 09:02:08 ************* Module 2.2.1.test04_otn_topology 09:02:08 transportpce_tests/2.2.1/test04_otn_topology.py:120:4: R0912: Too many branches (13/12) (too-many-branches) 09:02:08 09:02:08 ------------------------------------ 09:02:08 Your code has been rated at 10.00/10 09:02:08 09:02:10 pre-commit: OK ✔ in 46.8 seconds 09:02:10 pylint: exit 1 (22.63 seconds) /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}$' '{}' + pid=30046 09:02:55 pylint: FAIL ✖ in 28.61 seconds 09:02:55 buildcontroller: OK ✔ in 1 minute 48.06 seconds 09:02:55 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 09:02:55 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 09:02:55 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 09:02:55 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 09:03:01 build_karaf_tests121: freeze> python -m pip freeze --all 09:03:01 build_karaf_tests221: freeze> python -m pip freeze --all 09:03:01 sims: freeze> python -m pip freeze --all 09:03:01 build_karaf_tests121: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 09:03:01 build_karaf_tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 09:03:01 build_karaf_tests221: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 09:03:01 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 09:03:01 NOTE: Picked up JDK_JAVA_OPTIONS: 09:03:01 --add-opens=java.base/java.io=ALL-UNNAMED 09:03:01 --add-opens=java.base/java.lang=ALL-UNNAMED 09:03:01 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 09:03:01 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 09:03:01 --add-opens=java.base/java.net=ALL-UNNAMED 09:03:01 --add-opens=java.base/java.nio=ALL-UNNAMED 09:03:01 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 09:03:01 --add-opens=java.base/java.nio.file=ALL-UNNAMED 09:03:01 --add-opens=java.base/java.util=ALL-UNNAMED 09:03:01 --add-opens=java.base/java.util.jar=ALL-UNNAMED 09:03:01 --add-opens=java.base/java.util.stream=ALL-UNNAMED 09:03:01 --add-opens=java.base/java.util.zip=ALL-UNNAMED 09:03:01 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 09:03:01 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 09:03:01 -Xlog:disable 09:03:02 NOTE: Picked up JDK_JAVA_OPTIONS: 09:03:02 --add-opens=java.base/java.io=ALL-UNNAMED 09:03:02 --add-opens=java.base/java.lang=ALL-UNNAMED 09:03:02 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 09:03:02 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 09:03:02 --add-opens=java.base/java.net=ALL-UNNAMED 09:03:02 --add-opens=java.base/java.nio=ALL-UNNAMED 09:03:02 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 09:03:02 --add-opens=java.base/java.nio.file=ALL-UNNAMED 09:03:02 --add-opens=java.base/java.util=ALL-UNNAMED 09:03:02 --add-opens=java.base/java.util.jar=ALL-UNNAMED 09:03:02 --add-opens=java.base/java.util.stream=ALL-UNNAMED 09:03:02 --add-opens=java.base/java.util.zip=ALL-UNNAMED 09:03:02 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 09:03:02 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 09:03:02 -Xlog:disable 09:03:02 sims: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 09:03:02 sims: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_lightynode.sh 09:03:02 Using lighynode version 20.1.0.2 09:03:02 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory 09:03:05 sims: OK ✔ in 10.96 seconds 09:03:05 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 09:03:16 build_karaf_tests71: freeze> python -m pip freeze --all 09:03:17 build_karaf_tests71: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 09:03:17 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 09:03:17 NOTE: Picked up JDK_JAVA_OPTIONS: 09:03:17 --add-opens=java.base/java.io=ALL-UNNAMED 09:03:17 --add-opens=java.base/java.lang=ALL-UNNAMED 09:03:17 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 09:03:17 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 09:03:17 --add-opens=java.base/java.net=ALL-UNNAMED 09:03:17 --add-opens=java.base/java.nio=ALL-UNNAMED 09:03:17 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 09:03:17 --add-opens=java.base/java.nio.file=ALL-UNNAMED 09:03:17 --add-opens=java.base/java.util=ALL-UNNAMED 09:03:17 --add-opens=java.base/java.util.jar=ALL-UNNAMED 09:03:17 --add-opens=java.base/java.util.stream=ALL-UNNAMED 09:03:17 --add-opens=java.base/java.util.zip=ALL-UNNAMED 09:03:17 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 09:03:17 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 09:03:17 -Xlog:disable 09:03:48 build_karaf_tests221: OK ✔ in 53.83 seconds 09:03:48 build_karaf_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 09:03:49 build_karaf_tests121: OK ✔ in 55.27 seconds 09:03:49 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 09:03:55 build_karaf_tests_hybrid: freeze> python -m pip freeze --all 09:03:55 build_karaf_tests_hybrid: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 09:03:55 build_karaf_tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 09:03:55 NOTE: Picked up JDK_JAVA_OPTIONS: 09:03:55 --add-opens=java.base/java.io=ALL-UNNAMED 09:03:55 --add-opens=java.base/java.lang=ALL-UNNAMED 09:03:55 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 09:03:55 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 09:03:55 --add-opens=java.base/java.net=ALL-UNNAMED 09:03:55 --add-opens=java.base/java.nio=ALL-UNNAMED 09:03:55 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 09:03:55 --add-opens=java.base/java.nio.file=ALL-UNNAMED 09:03:55 --add-opens=java.base/java.util=ALL-UNNAMED 09:03:55 --add-opens=java.base/java.util.jar=ALL-UNNAMED 09:03:55 --add-opens=java.base/java.util.stream=ALL-UNNAMED 09:03:55 --add-opens=java.base/java.util.zip=ALL-UNNAMED 09:03:55 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 09:03:55 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 09:03:55 -Xlog:disable 09:03:56 tests_tapi: freeze> python -m pip freeze --all 09:03:56 tests_tapi: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 09:03:56 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi 09:03:56 using environment variables from ./karaf221.env 09:03:56 pytest -q transportpce_tests/tapi/test01_abstracted_topology.py 09:04:02 build_karaf_tests71: OK ✔ in 52.82 seconds 09:04:02 testsPCE: freeze> python -m pip freeze --all 09:04:02 testsPCE: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,click==8.1.7,contourpy==1.3.0,cryptography==3.3.2,cycler==0.12.1,dict2xml==1.7.6,Flask==2.1.3,Flask-Injector==0.14.0,fonttools==4.54.1,gnpy4tpce==2.4.7,idna==3.10,iniconfig==2.0.0,injector==0.22.0,itsdangerous==2.2.0,Jinja2==3.1.4,kiwisolver==1.4.7,lxml==5.3.0,MarkupSafe==3.0.1,matplotlib==3.9.2,netconf-client==3.1.1,networkx==2.8.8,numpy==1.26.4,packaging==24.1,pandas==1.5.3,paramiko==3.5.0,pbr==5.11.1,pillow==11.0.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pyparsing==3.2.0,pytest==8.3.3,python-dateutil==2.9.0.post0,pytz==2024.2,requests==2.32.3,scipy==1.14.1,setuptools==50.3.2,six==1.16.0,urllib3==2.2.3,Werkzeug==2.0.3,wheel==0.44.0,xlrd==1.2.0 09:04:02 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce 09:04:02 pytest -q transportpce_tests/pce/test01_pce.py 09:05:05 ................................... [100%] 09:06:09 20 passed in 126.38s (0:02:06) 09:06:09 pytest -q transportpce_tests/pce/test02_pce_400G.py 09:06:11 .......................... [100%] 09:06:53 9 passed in 43.73s 09:06:53 pytest -q transportpce_tests/pce/test03_gnpy.py 09:07:06 .............. [100%] 09:07:31 8 passed in 37.88s 09:07:31 pytest -q transportpce_tests/pce/test04_pce_bug_fix.py 09:07:50 ............ [100%] 09:07:55 50 passed in 238.26s (0:03:58) 09:07:55 pytest -q transportpce_tests/tapi/test02_full_topology.py 09:08:05 ... [100%] 09:08:10 3 passed in 38.39s 09:08:10 build_karaf_tests_hybrid: OK ✔ in 1 minute 2.03 seconds 09:08:10 testsPCE: OK ✔ in 5 minutes 16.01 seconds 09:08:10 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 09:08:17 tests121: freeze> python -m pip freeze --all 09:08:17 tests121: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 09:08:17 tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 09:08:17 using environment variables from ./karaf121.env 09:08:17 pytest -q transportpce_tests/1.2.1/test01_portmapping.py 09:09:25 .................................................. [100%] 09:12:56 21 passed in 278.69s (0:04:38) 09:12:56 pytest -q transportpce_tests/1.2.1/test02_topo_portmapping.py 09:15:50 . [100%] 09:15:53 30 passed in 477.67s (0:07:57) 09:15:53 pytest -q transportpce_tests/tapi/test03_tapi_device_change_notifications.py 09:16:25 ...... [100%] 09:16:39 6 passed in 223.29s (0:03:43) 09:16:39 pytest -q transportpce_tests/1.2.1/test03_topology.py 09:17:06 ........................................................................... [100%] 09:20:40 70 passed in 286.41s (0:04:46) 09:20:40 tests_tapi: OK ✔ in 16 minutes 50.44 seconds 09:20:40 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 09:20:42 ..tests71: freeze> python -m pip freeze --all 09:20:46 tests71: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 09:20:46 tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 09:20:46 using environment variables from ./karaf71.env 09:20:46 pytest -q transportpce_tests/7.1/test01_portmapping.py 09:20:46 ................. [100%] 09:21:33 12 passed in 47.25s 09:21:33 pytest -q transportpce_tests/7.1/test02_otn_renderer.py 09:22:01 ...................................................................... [100%] 09:24:11 62 passed in 158.16s (0:02:38) 09:24:12 pytest -q transportpce_tests/7.1/test03_renderer_or_modes.py 09:24:47 ................................................ [100%] 09:26:32 48 passed in 140.12s (0:02:20) 09:26:32 pytest -q transportpce_tests/7.1/test04_renderer_regen_mode.py 09:26:59 ....................................... [100%] 09:27:47 22 passed in 74.74s (0:01:14) 09:27:47 .tests71: OK ✔ in 7 minutes 7.21 seconds 09:27:47 tests_network: 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 09:27:47 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 09:27:49 ...tests221: freeze> python -m pip freeze --all 09:27:53 tests_network: freeze> python -m pip freeze --all 09:27:54 tests221: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 09:27:54 tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 09:27:54 using environment variables from ./karaf221.env 09:27:54 pytest -q transportpce_tests/2.2.1/test01_portmapping.py 09:27:54 tests_network: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 09:27:54 tests_network: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh network 09:27:54 using environment variables from ./karaf221.env 09:27:54 pytest -q transportpce_tests/network/test01_topo_extension.py 09:27:55 ... [100%] 09:28:02 44 passed in 682.62s (0:11:22) 09:28:02 pytest -q transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py 09:28:59 .............................E.....EEEEE.EEEEEEEE.EEEE [100%] 09:32:15 ==================================== ERRORS ==================================== 09:32:15 _________ ERROR at setup of TransportPCEtesting.test_01_connect_spdrA __________ 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 cls.processes = test_utils.start_tpce() 09:32:15 # TAPI feature is not installed by default in Karaf 09:32:15 if 'NO_ODL_STARTUP' not in os.environ or 'USE_LIGHTY' not in os.environ or os.environ['USE_LIGHTY'] != 'True': 09:32:15 print('installing tapi feature...') 09:32:15 result = test_utils.install_karaf_feature('odl-transportpce-tapi') 09:32:15 if result.returncode != 0: 09:32:15 cls.init_failed = True 09:32:15 print('Restarting OpenDaylight...') 09:32:15 test_utils.shutdown_process(cls.processes[0]) 09:32:15 cls.processes[0] = test_utils.start_karaf() 09:32:15 test_utils.process_list[0] = cls.processes[0] 09:32:15 cls.init_failed = not test_utils.wait_until_log_contains( 09:32:15 test_utils.KARAF_LOG, test_utils.KARAF_OK_START_MSG, time_to_wait=60) 09:32:15 if cls.init_failed: 09:32:15 print('tapi installation feature failed...') 09:32:15 test_utils.shutdown_process(cls.processes[0]) 09:32:15 sys.exit(2) 09:32:15 > cls.processes = test_utils.start_sims([('spdra', cls.NODE_VERSION), 09:32:15 ('roadma', cls.NODE_VERSION), 09:32:15 ('roadmc', cls.NODE_VERSION), 09:32:15 ('spdrc', cls.NODE_VERSION)]) 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:158: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 sims_list = [('spdra', '2.2.1'), ('roadma', '2.2.1'), ('roadmc', '2.2.1'), ('spdrc', '2.2.1')] 09:32:15 09:32:15 def start_sims(sims_list): 09:32:15 if SIMS_TO_USE == 'None': 09:32:15 return None 09:32:15 if SIMS_TO_USE == 'honeynode': 09:32:15 start_msg = HONEYNODE_OK_START_MSG 09:32:15 start_method = start_honeynode 09:32:15 else: 09:32:15 start_msg = LIGHTYNODE_OK_START_MSG 09:32:15 start_method = start_lightynode 09:32:15 for sim in sims_list: 09:32:15 print('starting simulator ' + sim[0] + ' in OpenROADM device version ' + sim[1] + '...') 09:32:15 log_file = os.path.join(SIM_LOG_DIRECTORY, SIMS[sim]['logfile']) 09:32:15 process = start_method(log_file, sim) 09:32:15 if wait_until_log_contains(log_file, start_msg, 100): 09:32:15 print('simulator for ' + sim[0] + ' started') 09:32:15 else: 09:32:15 print('simulator for ' + sim[0] + ' failed to start') 09:32:15 shutdown_process(process) 09:32:15 for pid in process_list: 09:32:15 shutdown_process(pid) 09:32:15 > sys.exit(3) 09:32:15 E SystemExit: 3 09:32:15 09:32:15 transportpce_tests/common/test_utils.py:206: SystemExit 09:32:15 ---------------------------- Captured stdout setup ----------------------------- 09:32:15 starting OpenDaylight... 09:32:15 starting KARAF TransportPCE build... 09:32:15 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern found! OpenDaylight started ! 09:32:15 installing tapi feature... 09:32:15 installing feature odl-transportpce-tapi 09:32:15 client: JAVA_HOME not set; results may vary 09:32:15 odl-transportpce-tapi │ 10.0.0.SNAPSHOT │ x │ Started │ odl-transportpce-tapi │ OpenDaylight :: transportpce :: tapi 09:32:15 Restarting OpenDaylight... 09:32:15 starting KARAF TransportPCE build... 09:32:15 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern found! starting simulator spdra in OpenROADM device version 2.2.1... 09:32:15 Searching for pattern 'Data tree change listeners registered' in spdra-221.log... Pattern not found after 100 seconds! simulator for spdra failed to start 09:32:15 ---------------------------- Captured stderr setup ----------------------------- 09:32:15 SLF4J(W): No SLF4J providers were found. 09:32:15 SLF4J(W): Defaulting to no-operation (NOP) logger implementation 09:32:15 SLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details. 09:32:15 SLF4J(W): Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier. 09:32:15 SLF4J(W): Ignoring binding found at [jar:file:/w/workspace/transportpce-tox-verify-transportpce-master/karaf221/target/assembly/system/org/apache/karaf/org.apache.karaf.client/4.4.6/org.apache.karaf.client-4.4.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] 09:32:15 SLF4J(W): See https://www.slf4j.org/codes.html#ignoredBindings for an explanation. 09:32:15 _________ ERROR at setup of TransportPCEtesting.test_02_connect_spdrC __________ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 ---------------------------- Captured stdout setup ----------------------------- 09:32:15 starting OpenDaylight... 09:32:15 starting KARAF TransportPCE build... 09:32:15 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 09:32:15 __________ ERROR at setup of TransportPCEtesting.test_03_connect_rdmA __________ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 __________ ERROR at setup of TransportPCEtesting.test_04_connect_rdmC __________ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 _ ERROR at setup of TransportPCEtesting.test_05_connect_sprdA_1_N1_to_TAPI_EXT_roadmTA1_PP1 _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 _ ERROR at setup of TransportPCEtesting.test_06_connect_TAPI_EXT_roadmTA1_PP1_to_spdrA_1_N1 _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 _ ERROR at setup of TransportPCEtesting.test_07_connect_sprdC_1_N1_to_TAPI_EXT_roadmTC1_PP1 _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 _ ERROR at setup of TransportPCEtesting.test_08_connect_TAPI_EXT_roadmTC1_PP1_to_spdrC_1_N1 _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 _______ ERROR at setup of TransportPCEtesting.test_09_check_otn_topology _______ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 ____ ERROR at setup of TransportPCEtesting.test_10_check_openroadm_topology ____ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 _ ERROR at setup of TransportPCEtesting.test_11_connect_RDMA1_to_TAPI_EXT_roadmTA1 _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 _ ERROR at setup of TransportPCEtesting.test_12_connect_RDMC1_to_TAPI_EXT_roadmTC1 _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 ___ ERROR at setup of TransportPCEtesting.test_13_getLinks_OpenroadmTopology ___ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 ___ ERROR at setup of TransportPCEtesting.test_14_getNodes_OpenRoadmTopology ___ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 ________ ERROR at setup of TransportPCEtesting.test_15_disconnect_spdrA ________ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 ________ ERROR at setup of TransportPCEtesting.test_16_disconnect_spdrC ________ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 _______ ERROR at setup of TransportPCEtesting.test_17_disconnect_roadmA ________ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 _______ ERROR at setup of TransportPCEtesting.test_18_disconnect_roadmC ________ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 > return fun(self, *args, **kwargs) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:508: in wrapper 09:32:15 raise raise_from(err, None) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:506: in wrapper 09:32:15 return fun(self) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1780: in _parse_stat_file 09:32:15 data = bcat("%s/%s/stat" % (self._procfs_path, self.pid)) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:851: in bcat 09:32:15 return cat(fname, fallback=fallback, _open=open_binary) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:839: in cat 09:32:15 with _open(fname) as f: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 fname = '/proc/44963/stat' 09:32:15 09:32:15 def open_binary(fname): 09:32:15 > return open(fname, "rb", buffering=FILE_READ_BUFFER_SIZE) 09:32:15 E FileNotFoundError: [Errno 2] No such file or directory: '/proc/44963/stat' 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_common.py:799: FileNotFoundError 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 > self._ident = self._get_ident() 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:355: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:396: in _get_ident 09:32:15 return (self.pid, self.create_time()) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:778: in create_time 09:32:15 self._create_time = self._proc.create_time() 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1717: in wrapper 09:32:15 return fun(self, *args, **kwargs) 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1953: in create_time 09:32:15 ctime = float(self._parse_stat_file()['create_time']) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = , args = () 09:32:15 kwargs = {} 09:32:15 09:32:15 @functools.wraps(fun) 09:32:15 def wrapper(self, *args, **kwargs): 09:32:15 try: 09:32:15 return fun(self, *args, **kwargs) 09:32:15 except PermissionError: 09:32:15 raise AccessDenied(self.pid, self._name) 09:32:15 except ProcessLookupError: 09:32:15 self._raise_if_zombie() 09:32:15 raise NoSuchProcess(self.pid, self._name) 09:32:15 except FileNotFoundError: 09:32:15 self._raise_if_zombie() 09:32:15 if not os.path.exists("%s/%s" % (self._procfs_path, self.pid)): 09:32:15 > raise NoSuchProcess(self.pid, self._name) 09:32:15 E psutil.NoSuchProcess: process no longer exists (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/_pslinux.py:1726: NoSuchProcess 09:32:15 09:32:15 During handling of the above exception, another exception occurred: 09:32:15 09:32:15 cls = 09:32:15 09:32:15 @classmethod 09:32:15 def setUpClass(cls): 09:32:15 # pylint: disable=unsubscriptable-object 09:32:15 cls.init_failed = False 09:32:15 os.environ['JAVA_MIN_MEM'] = '1024M' 09:32:15 os.environ['JAVA_MAX_MEM'] = '4096M' 09:32:15 > cls.processes = test_utils.start_tpce() 09:32:15 09:32:15 transportpce_tests/network/test01_topo_extension.py:141: 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 transportpce_tests/common/test_utils.py:228: in start_tpce 09:32:15 shutdown_process(pid) 09:32:15 transportpce_tests/common/test_utils.py:270: in shutdown_process 09:32:15 for child in psutil.Process(process.pid).children(): 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:319: in __init__ 09:32:15 self._init(pid) 09:32:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:32:15 09:32:15 self = psutil.Process(pid=44963, status='terminated'), pid = 44963 09:32:15 _ignore_nsp = False 09:32:15 09:32:15 def _init(self, pid, _ignore_nsp=False): 09:32:15 if pid is None: 09:32:15 pid = os.getpid() 09:32:15 else: 09:32:15 if not _PY3 and not isinstance(pid, (int, long)): 09:32:15 msg = "pid must be an integer (got %r)" % pid 09:32:15 raise TypeError(msg) 09:32:15 if pid < 0: 09:32:15 msg = "pid must be a positive integer (got %s)" % pid 09:32:15 raise ValueError(msg) 09:32:15 try: 09:32:15 _psplatform.cext.check_pid_range(pid) 09:32:15 except OverflowError: 09:32:15 msg = "process PID out of range (got %s)" % pid 09:32:15 raise NoSuchProcess(pid, msg=msg) 09:32:15 09:32:15 self._pid = pid 09:32:15 self._name = None 09:32:15 self._exe = None 09:32:15 self._create_time = None 09:32:15 self._gone = False 09:32:15 self._pid_reused = False 09:32:15 self._hash = None 09:32:15 self._lock = threading.RLock() 09:32:15 # used for caching on Windows only (on POSIX ppid may change) 09:32:15 self._ppid = None 09:32:15 # platform-specific modules define an _psplatform.Process 09:32:15 # implementation class 09:32:15 self._proc = _psplatform.Process(pid) 09:32:15 self._last_sys_cpu_times = None 09:32:15 self._last_proc_cpu_times = None 09:32:15 self._exitcode = _SENTINEL 09:32:15 self._ident = (self.pid, None) 09:32:15 try: 09:32:15 self._ident = self._get_ident() 09:32:15 except AccessDenied: 09:32:15 # This should happen on Windows only, since we use the fast 09:32:15 # create time method. AFAIK, on all other platforms we are 09:32:15 # able to get create time for all PIDs. 09:32:15 pass 09:32:15 except ZombieProcess: 09:32:15 # Zombies can still be queried by this class (although 09:32:15 # not always) and pids() return them so just go on. 09:32:15 pass 09:32:15 except NoSuchProcess: 09:32:15 if not _ignore_nsp: 09:32:15 msg = "process PID not found" 09:32:15 > raise NoSuchProcess(pid, msg=msg) 09:32:15 E psutil.NoSuchProcess: process PID not found (pid=44963) 09:32:15 09:32:15 ../.tox/tests_network/lib/python3.11/site-packages/psutil/__init__.py:368: NoSuchProcess 09:32:15 =========================== short test summary info ============================ 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_01_connect_spdrA 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_02_connect_spdrC 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_03_connect_rdmA 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_04_connect_rdmC 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_05_connect_sprdA_1_N1_to_TAPI_EXT_roadmTA1_PP1 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_06_connect_TAPI_EXT_roadmTA1_PP1_to_spdrA_1_N1 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_07_connect_sprdC_1_N1_to_TAPI_EXT_roadmTC1_PP1 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_08_connect_TAPI_EXT_roadmTC1_PP1_to_spdrC_1_N1 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_09_check_otn_topology 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_10_check_openroadm_topology 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_11_connect_RDMA1_to_TAPI_EXT_roadmTA1 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_12_connect_RDMC1_to_TAPI_EXT_roadmTC1 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_13_getLinks_OpenroadmTopology 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_14_getNodes_OpenRoadmTopology 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_15_disconnect_spdrA 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_16_disconnect_spdrC 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_17_disconnect_roadmA 09:32:15 ERROR transportpce_tests/network/test01_topo_extension.py::TransportPCEtesting::test_18_disconnect_roadmC 09:32:15 18 errors in 261.24s (0:04:21) 09:32:15 tests_network: exit 1 (261.48 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh network pid=43790 09:32:16 ................. [100%] 09:32:38 35 passed in 284.55s (0:04:44) 09:32:38 pytest -q transportpce_tests/2.2.1/test02_topo_portmapping.py 09:32:39 ...... [100%] 09:32:52 24 passed in 289.68s (0:04:49) 09:32:52 pytest -q transportpce_tests/1.2.1/test05_olm.py 09:33:20 ...... [100%] 09:33:35 6 passed in 56.06s 09:33:35 pytest -q transportpce_tests/2.2.1/test03_topology.py 09:33:42 FFFFFFFF..FFFFFFFFFFFFFFFFFFFFFFFFF............................................ [100%] 09:35:56 44 passed in 140.86s (0:02:20) 09:35:56 pytest -q transportpce_tests/2.2.1/test04_otn_topology.py 09:36:33 ............ [100%] 09:36:58 12 passed in 61.43s (0:01:01) 09:36:58 pytest -q transportpce_tests/2.2.1/test05_flex_grid.py 09:37:21 F................ [100%] 09:38:54 16 passed in 116.05s (0:01:56) 09:38:54 pytest -q transportpce_tests/2.2.1/test06_renderer_service_path_nominal.py 09:39:24 ............................... [100%] 09:39:31 31 passed in 36.77s 09:39:31 pytest -q transportpce_tests/2.2.1/test07_otn_renderer.py 09:40:08 .......FF................... [100%] 09:41:04 26 passed in 92.68s (0:01:32) 09:41:04 pytest -q transportpce_tests/2.2.1/test08_otn_sh_renderer.py 09:41:41 ...................... [100%] 09:42:45 22 passed in 100.59s (0:01:40) 09:42:45 pytest -q transportpce_tests/2.2.1/test09_olm.py 09:43:24 F.......................................F [100%] 09:46:29 =================================== FAILURES =================================== 09:46:29 ______________ TransportOlmTesting.test_01_xpdrA_device_connected ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 > sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 09:46:29 raise err 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 address = ('localhost', 8182), timeout = 10, source_address = None 09:46:29 socket_options = [(6, 1, 1)] 09:46:29 09:46:29 def create_connection( 09:46:29 address: tuple[str, int], 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 source_address: tuple[str, int] | None = None, 09:46:29 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 09:46:29 ) -> socket.socket: 09:46:29 """Connect to *address* and return the socket object. 09:46:29 09:46:29 Convenience function. Connect to *address* (a 2-tuple ``(host, 09:46:29 port)``) and return the socket object. Passing the optional 09:46:29 *timeout* parameter will set the timeout on the socket instance 09:46:29 before attempting to connect. If no *timeout* is supplied, the 09:46:29 global default timeout setting returned by :func:`socket.getdefaulttimeout` 09:46:29 is used. If *source_address* is set it must be a tuple of (host, port) 09:46:29 for the socket to bind as a source address before making the connection. 09:46:29 An host of '' or port 0 tells the OS to use the default. 09:46:29 """ 09:46:29 09:46:29 host, port = address 09:46:29 if host.startswith("["): 09:46:29 host = host.strip("[]") 09:46:29 err = None 09:46:29 09:46:29 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 09:46:29 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 09:46:29 # The original create_connection function always returns all records. 09:46:29 family = allowed_gai_family() 09:46:29 09:46:29 try: 09:46:29 host.encode("idna") 09:46:29 except UnicodeError: 09:46:29 raise LocationParseError(f"'{host}', label empty or too long") from None 09:46:29 09:46:29 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 09:46:29 af, socktype, proto, canonname, sa = res 09:46:29 sock = None 09:46:29 try: 09:46:29 sock = socket.socket(af, socktype, proto) 09:46:29 09:46:29 # If provided, set socket level options before connecting. 09:46:29 _set_socket_options(sock, socket_options) 09:46:29 09:46:29 if timeout is not _DEFAULT_TIMEOUT: 09:46:29 sock.settimeout(timeout) 09:46:29 if source_address: 09:46:29 sock.bind(source_address) 09:46:29 > sock.connect(sa) 09:46:29 E ConnectionRefusedError: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 method = 'PUT' 09:46:29 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRA01' 09:46:29 body = '{"node": [{"node-id": "XPDRA01", "netconf-node-topology:host": "127.0.0.1", "netconf-node-topology:port": "17830", "n...lis": "60000", "netconf-node-topology:max-connection-attempts": "0", "netconf-node-topology:keepalive-delay": "120"}]}' 09:46:29 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '588', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 09:46:29 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 redirect = False, assert_same_host = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 09:46:29 release_conn = False, chunked = False, body_pos = None, preload_content = False 09:46:29 decode_content = False, response_kw = {} 09:46:29 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRA01', query=None, fragment=None) 09:46:29 destination_scheme = None, conn = None, release_this_conn = True 09:46:29 http_tunnel_required = False, err = None, clean_exit = False 09:46:29 09:46:29 def urlopen( # type: ignore[override] 09:46:29 self, 09:46:29 method: str, 09:46:29 url: str, 09:46:29 body: _TYPE_BODY | None = None, 09:46:29 headers: typing.Mapping[str, str] | None = None, 09:46:29 retries: Retry | bool | int | None = None, 09:46:29 redirect: bool = True, 09:46:29 assert_same_host: bool = True, 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 pool_timeout: int | None = None, 09:46:29 release_conn: bool | None = None, 09:46:29 chunked: bool = False, 09:46:29 body_pos: _TYPE_BODY_POSITION | None = None, 09:46:29 preload_content: bool = True, 09:46:29 decode_content: bool = True, 09:46:29 **response_kw: typing.Any, 09:46:29 ) -> BaseHTTPResponse: 09:46:29 """ 09:46:29 Get a connection from the pool and perform an HTTP request. This is the 09:46:29 lowest level call for making a request, so you'll need to specify all 09:46:29 the raw details. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 More commonly, it's appropriate to use a convenience method 09:46:29 such as :meth:`request`. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 `release_conn` will only behave as expected if 09:46:29 `preload_content=False` because we want to make 09:46:29 `preload_content=False` the default behaviour someday soon without 09:46:29 breaking backwards compatibility. 09:46:29 09:46:29 :param method: 09:46:29 HTTP request method (such as GET, POST, PUT, etc.) 09:46:29 09:46:29 :param url: 09:46:29 The URL to perform the request on. 09:46:29 09:46:29 :param body: 09:46:29 Data to send in the request body, either :class:`str`, :class:`bytes`, 09:46:29 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 09:46:29 09:46:29 :param headers: 09:46:29 Dictionary of custom headers to send, such as User-Agent, 09:46:29 If-None-Match, etc. If None, pool headers are used. If provided, 09:46:29 these headers completely replace any pool-specific headers. 09:46:29 09:46:29 :param retries: 09:46:29 Configure the number of retries to allow before raising a 09:46:29 :class:`~urllib3.exceptions.MaxRetryError` exception. 09:46:29 09:46:29 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 09:46:29 :class:`~urllib3.util.retry.Retry` object for fine-grained control 09:46:29 over different types of retries. 09:46:29 Pass an integer number to retry connection errors that many times, 09:46:29 but no other types of errors. Pass zero to never retry. 09:46:29 09:46:29 If ``False``, then retries are disabled and any exception is raised 09:46:29 immediately. Also, instead of raising a MaxRetryError on redirects, 09:46:29 the redirect response will be returned. 09:46:29 09:46:29 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 09:46:29 09:46:29 :param redirect: 09:46:29 If True, automatically handle redirects (status codes 301, 302, 09:46:29 303, 307, 308). Each redirect counts as a retry. Disabling retries 09:46:29 will disable redirect, too. 09:46:29 09:46:29 :param assert_same_host: 09:46:29 If ``True``, will make sure that the host of the pool requests is 09:46:29 consistent else will raise HostChangedError. When ``False``, you can 09:46:29 use the pool on an HTTP proxy and request foreign hosts. 09:46:29 09:46:29 :param timeout: 09:46:29 If specified, overrides the default timeout for this one 09:46:29 request. It may be a float (in seconds) or an instance of 09:46:29 :class:`urllib3.util.Timeout`. 09:46:29 09:46:29 :param pool_timeout: 09:46:29 If set and the pool is set to block=True, then this method will 09:46:29 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 09:46:29 connection is available within the time period. 09:46:29 09:46:29 :param bool preload_content: 09:46:29 If True, the response's body will be preloaded into memory. 09:46:29 09:46:29 :param bool decode_content: 09:46:29 If True, will attempt to decode the body based on the 09:46:29 'content-encoding' header. 09:46:29 09:46:29 :param release_conn: 09:46:29 If False, then the urlopen call will not release the connection 09:46:29 back into the pool once a response is received (but will release if 09:46:29 you read the entire contents of the response such as when 09:46:29 `preload_content=True`). This is useful if you're not preloading 09:46:29 the response's content immediately. You will need to call 09:46:29 ``r.release_conn()`` on the response ``r`` to return the connection 09:46:29 back into the pool. If None, it takes the value of ``preload_content`` 09:46:29 which defaults to ``True``. 09:46:29 09:46:29 :param bool chunked: 09:46:29 If True, urllib3 will send the body using chunked transfer 09:46:29 encoding. Otherwise, urllib3 will send the body using the standard 09:46:29 content-length form. Defaults to False. 09:46:29 09:46:29 :param int body_pos: 09:46:29 Position to seek to in file-like body in the event of a retry or 09:46:29 redirect. Typically this won't need to be set because urllib3 will 09:46:29 auto-populate the value when needed. 09:46:29 """ 09:46:29 parsed_url = parse_url(url) 09:46:29 destination_scheme = parsed_url.scheme 09:46:29 09:46:29 if headers is None: 09:46:29 headers = self.headers 09:46:29 09:46:29 if not isinstance(retries, Retry): 09:46:29 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 09:46:29 09:46:29 if release_conn is None: 09:46:29 release_conn = preload_content 09:46:29 09:46:29 # Check host 09:46:29 if assert_same_host and not self.is_same_host(url): 09:46:29 raise HostChangedError(self, url, retries) 09:46:29 09:46:29 # Ensure that the URL we're connecting to is properly encoded 09:46:29 if url.startswith("/"): 09:46:29 url = to_str(_encode_target(url)) 09:46:29 else: 09:46:29 url = to_str(parsed_url.url) 09:46:29 09:46:29 conn = None 09:46:29 09:46:29 # Track whether `conn` needs to be released before 09:46:29 # returning/raising/recursing. Update this variable if necessary, and 09:46:29 # leave `release_conn` constant throughout the function. That way, if 09:46:29 # the function recurses, the original value of `release_conn` will be 09:46:29 # passed down into the recursive call, and its value will be respected. 09:46:29 # 09:46:29 # See issue #651 [1] for details. 09:46:29 # 09:46:29 # [1] 09:46:29 release_this_conn = release_conn 09:46:29 09:46:29 http_tunnel_required = connection_requires_http_tunnel( 09:46:29 self.proxy, self.proxy_config, destination_scheme 09:46:29 ) 09:46:29 09:46:29 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 09:46:29 # have to copy the headers dict so we can safely change it without those 09:46:29 # changes being reflected in anyone else's copy. 09:46:29 if not http_tunnel_required: 09:46:29 headers = headers.copy() # type: ignore[attr-defined] 09:46:29 headers.update(self.proxy_headers) # type: ignore[union-attr] 09:46:29 09:46:29 # Must keep the exception bound to a separate variable or else Python 3 09:46:29 # complains about UnboundLocalError. 09:46:29 err = None 09:46:29 09:46:29 # Keep track of whether we cleanly exited the except block. This 09:46:29 # ensures we do proper cleanup in finally. 09:46:29 clean_exit = False 09:46:29 09:46:29 # Rewind body position, if needed. Record current position 09:46:29 # for future rewinds in the event of a redirect/retry. 09:46:29 body_pos = set_file_position(body, body_pos) 09:46:29 09:46:29 try: 09:46:29 # Request a connection from the queue. 09:46:29 timeout_obj = self._get_timeout(timeout) 09:46:29 conn = self._get_conn(timeout=pool_timeout) 09:46:29 09:46:29 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 09:46:29 09:46:29 # Is this a closed/new connection that requires CONNECT tunnelling? 09:46:29 if self.proxy is not None and http_tunnel_required and conn.is_closed: 09:46:29 try: 09:46:29 self._prepare_proxy(conn) 09:46:29 except (BaseSSLError, OSError, SocketTimeout) as e: 09:46:29 self._raise_timeout( 09:46:29 err=e, url=self.proxy.url, timeout_value=conn.timeout 09:46:29 ) 09:46:29 raise 09:46:29 09:46:29 # If we're going to release the connection in ``finally:``, then 09:46:29 # the response doesn't need to know about the connection. Otherwise 09:46:29 # it will also try to release it and we'll have a double-release 09:46:29 # mess. 09:46:29 response_conn = conn if not release_conn else None 09:46:29 09:46:29 # Make the request on the HTTPConnection object 09:46:29 > response = self._make_request( 09:46:29 conn, 09:46:29 method, 09:46:29 url, 09:46:29 timeout=timeout_obj, 09:46:29 body=body, 09:46:29 headers=headers, 09:46:29 chunked=chunked, 09:46:29 retries=retries, 09:46:29 response_conn=response_conn, 09:46:29 preload_content=preload_content, 09:46:29 decode_content=decode_content, 09:46:29 **response_kw, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 09:46:29 conn.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 09:46:29 self.endheaders() 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 09:46:29 self._send_output(message_body, encode_chunked=encode_chunked) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 09:46:29 self.send(msg) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 09:46:29 self.connect() 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 09:46:29 self.sock = self._new_conn() 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 except socket.gaierror as e: 09:46:29 raise NameResolutionError(self.host, self, e) from e 09:46:29 except SocketTimeout as e: 09:46:29 raise ConnectTimeoutError( 09:46:29 self, 09:46:29 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 09:46:29 ) from e 09:46:29 09:46:29 except OSError as e: 09:46:29 > raise NewConnectionError( 09:46:29 self, f"Failed to establish a new connection: {e}" 09:46:29 ) from e 09:46:29 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 > resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 09:46:29 retries = retries.increment( 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 method = 'PUT' 09:46:29 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRA01' 09:46:29 response = None 09:46:29 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 09:46:29 _pool = 09:46:29 _stacktrace = 09:46:29 09:46:29 def increment( 09:46:29 self, 09:46:29 method: str | None = None, 09:46:29 url: str | None = None, 09:46:29 response: BaseHTTPResponse | None = None, 09:46:29 error: Exception | None = None, 09:46:29 _pool: ConnectionPool | None = None, 09:46:29 _stacktrace: TracebackType | None = None, 09:46:29 ) -> Self: 09:46:29 """Return a new Retry object with incremented retry counters. 09:46:29 09:46:29 :param response: A response object, or None, if the server did not 09:46:29 return a response. 09:46:29 :type response: :class:`~urllib3.response.BaseHTTPResponse` 09:46:29 :param Exception error: An error encountered during the request, or 09:46:29 None if the response was received successfully. 09:46:29 09:46:29 :return: A new ``Retry`` object. 09:46:29 """ 09:46:29 if self.total is False and error: 09:46:29 # Disabled, indicate to re-raise the error. 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 09:46:29 total = self.total 09:46:29 if total is not None: 09:46:29 total -= 1 09:46:29 09:46:29 connect = self.connect 09:46:29 read = self.read 09:46:29 redirect = self.redirect 09:46:29 status_count = self.status 09:46:29 other = self.other 09:46:29 cause = "unknown" 09:46:29 status = None 09:46:29 redirect_location = None 09:46:29 09:46:29 if error and self._is_connection_error(error): 09:46:29 # Connect retry? 09:46:29 if connect is False: 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif connect is not None: 09:46:29 connect -= 1 09:46:29 09:46:29 elif error and self._is_read_error(error): 09:46:29 # Read retry? 09:46:29 if read is False or method is None or not self._is_method_retryable(method): 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif read is not None: 09:46:29 read -= 1 09:46:29 09:46:29 elif error: 09:46:29 # Other retry? 09:46:29 if other is not None: 09:46:29 other -= 1 09:46:29 09:46:29 elif response and response.get_redirect_location(): 09:46:29 # Redirect retry? 09:46:29 if redirect is not None: 09:46:29 redirect -= 1 09:46:29 cause = "too many redirects" 09:46:29 response_redirect_location = response.get_redirect_location() 09:46:29 if response_redirect_location: 09:46:29 redirect_location = response_redirect_location 09:46:29 status = response.status 09:46:29 09:46:29 else: 09:46:29 # Incrementing because of a server error like a 500 in 09:46:29 # status_forcelist and the given method is in the allowed_methods 09:46:29 cause = ResponseError.GENERIC_ERROR 09:46:29 if response and response.status: 09:46:29 if status_count is not None: 09:46:29 status_count -= 1 09:46:29 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 09:46:29 status = response.status 09:46:29 09:46:29 history = self.history + ( 09:46:29 RequestHistory(method, url, error, status, redirect_location), 09:46:29 ) 09:46:29 09:46:29 new_retry = self.new( 09:46:29 total=total, 09:46:29 connect=connect, 09:46:29 read=read, 09:46:29 redirect=redirect, 09:46:29 status=status_count, 09:46:29 other=other, 09:46:29 history=history, 09:46:29 ) 09:46:29 09:46:29 if new_retry.is_exhausted(): 09:46:29 reason = error or ResponseError(cause) 09:46:29 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 09:46:29 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRA01 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 09:46:29 09:46:29 During handling of the above exception, another exception occurred: 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_01_xpdrA_device_connected(self): 09:46:29 > response = test_utils.mount_device("XPDRA01", ('xpdra', self.NODE_VERSION)) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:52: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 transportpce_tests/common/test_utils.py:344: in mount_device 09:46:29 response = put_request(url[RESTCONF_VERSION].format('{}', node), body) 09:46:29 transportpce_tests/common/test_utils.py:124: in put_request 09:46:29 return requests.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 09:46:29 return session.request(method=method, url=url, **kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 09:46:29 resp = self.send(prep, **send_kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 09:46:29 r = adapter.send(request, **kwargs) 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 except (ProtocolError, OSError) as err: 09:46:29 raise ConnectionError(err, request=request) 09:46:29 09:46:29 except MaxRetryError as e: 09:46:29 if isinstance(e.reason, ConnectTimeoutError): 09:46:29 # TODO: Remove this in 3.0.0: see #2811 09:46:29 if not isinstance(e.reason, NewConnectionError): 09:46:29 raise ConnectTimeout(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, ResponseError): 09:46:29 raise RetryError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _ProxyError): 09:46:29 raise ProxyError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _SSLError): 09:46:29 # This branch is for urllib3 v1.22 and later. 09:46:29 raise SSLError(e, request=request) 09:46:29 09:46:29 > raise ConnectionError(e, request=request) 09:46:29 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRA01 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 09:46:29 ---------------------------- Captured stdout setup ----------------------------- 09:46:29 starting OpenDaylight... 09:46:29 starting KARAF TransportPCE build... 09:46:29 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern found! OpenDaylight started ! 09:46:29 starting simulator xpdra in OpenROADM device version 1.2.1... 09:46:29 Searching for pattern 'Data tree change listeners registered' in xpdra-121.log... Pattern found! simulator for xpdra started 09:46:29 starting simulator roadma-full in OpenROADM device version 1.2.1... 09:46:29 Searching for pattern 'Data tree change listeners registered' in roadma-121.log... Pattern found! simulator for roadma-full started 09:46:29 starting simulator roadmc-full in OpenROADM device version 1.2.1... 09:46:29 Searching for pattern 'Data tree change listeners registered' in roadmc-121.log... Pattern found! simulator for roadmc-full started 09:46:29 starting simulator xpdrc in OpenROADM device version 1.2.1... 09:46:29 Searching for pattern 'Data tree change listeners registered' in xpdrc-121.log... Pattern found! simulator for xpdrc started 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_01_xpdrA_device_connected 09:46:29 ______________ TransportOlmTesting.test_02_xpdrC_device_connected ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 > sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 09:46:29 raise err 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 address = ('localhost', 8182), timeout = 10, source_address = None 09:46:29 socket_options = [(6, 1, 1)] 09:46:29 09:46:29 def create_connection( 09:46:29 address: tuple[str, int], 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 source_address: tuple[str, int] | None = None, 09:46:29 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 09:46:29 ) -> socket.socket: 09:46:29 """Connect to *address* and return the socket object. 09:46:29 09:46:29 Convenience function. Connect to *address* (a 2-tuple ``(host, 09:46:29 port)``) and return the socket object. Passing the optional 09:46:29 *timeout* parameter will set the timeout on the socket instance 09:46:29 before attempting to connect. If no *timeout* is supplied, the 09:46:29 global default timeout setting returned by :func:`socket.getdefaulttimeout` 09:46:29 is used. If *source_address* is set it must be a tuple of (host, port) 09:46:29 for the socket to bind as a source address before making the connection. 09:46:29 An host of '' or port 0 tells the OS to use the default. 09:46:29 """ 09:46:29 09:46:29 host, port = address 09:46:29 if host.startswith("["): 09:46:29 host = host.strip("[]") 09:46:29 err = None 09:46:29 09:46:29 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 09:46:29 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 09:46:29 # The original create_connection function always returns all records. 09:46:29 family = allowed_gai_family() 09:46:29 09:46:29 try: 09:46:29 host.encode("idna") 09:46:29 except UnicodeError: 09:46:29 raise LocationParseError(f"'{host}', label empty or too long") from None 09:46:29 09:46:29 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 09:46:29 af, socktype, proto, canonname, sa = res 09:46:29 sock = None 09:46:29 try: 09:46:29 sock = socket.socket(af, socktype, proto) 09:46:29 09:46:29 # If provided, set socket level options before connecting. 09:46:29 _set_socket_options(sock, socket_options) 09:46:29 09:46:29 if timeout is not _DEFAULT_TIMEOUT: 09:46:29 sock.settimeout(timeout) 09:46:29 if source_address: 09:46:29 sock.bind(source_address) 09:46:29 > sock.connect(sa) 09:46:29 E ConnectionRefusedError: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 method = 'PUT' 09:46:29 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRC01' 09:46:29 body = '{"node": [{"node-id": "XPDRC01", "netconf-node-topology:host": "127.0.0.1", "netconf-node-topology:port": "17834", "n...lis": "60000", "netconf-node-topology:max-connection-attempts": "0", "netconf-node-topology:keepalive-delay": "120"}]}' 09:46:29 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '588', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 09:46:29 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 redirect = False, assert_same_host = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 09:46:29 release_conn = False, chunked = False, body_pos = None, preload_content = False 09:46:29 decode_content = False, response_kw = {} 09:46:29 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRC01', query=None, fragment=None) 09:46:29 destination_scheme = None, conn = None, release_this_conn = True 09:46:29 http_tunnel_required = False, err = None, clean_exit = False 09:46:29 09:46:29 def urlopen( # type: ignore[override] 09:46:29 self, 09:46:29 method: str, 09:46:29 url: str, 09:46:29 body: _TYPE_BODY | None = None, 09:46:29 headers: typing.Mapping[str, str] | None = None, 09:46:29 retries: Retry | bool | int | None = None, 09:46:29 redirect: bool = True, 09:46:29 assert_same_host: bool = True, 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 pool_timeout: int | None = None, 09:46:29 release_conn: bool | None = None, 09:46:29 chunked: bool = False, 09:46:29 body_pos: _TYPE_BODY_POSITION | None = None, 09:46:29 preload_content: bool = True, 09:46:29 decode_content: bool = True, 09:46:29 **response_kw: typing.Any, 09:46:29 ) -> BaseHTTPResponse: 09:46:29 """ 09:46:29 Get a connection from the pool and perform an HTTP request. This is the 09:46:29 lowest level call for making a request, so you'll need to specify all 09:46:29 the raw details. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 More commonly, it's appropriate to use a convenience method 09:46:29 such as :meth:`request`. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 `release_conn` will only behave as expected if 09:46:29 `preload_content=False` because we want to make 09:46:29 `preload_content=False` the default behaviour someday soon without 09:46:29 breaking backwards compatibility. 09:46:29 09:46:29 :param method: 09:46:29 HTTP request method (such as GET, POST, PUT, etc.) 09:46:29 09:46:29 :param url: 09:46:29 The URL to perform the request on. 09:46:29 09:46:29 :param body: 09:46:29 Data to send in the request body, either :class:`str`, :class:`bytes`, 09:46:29 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 09:46:29 09:46:29 :param headers: 09:46:29 Dictionary of custom headers to send, such as User-Agent, 09:46:29 If-None-Match, etc. If None, pool headers are used. If provided, 09:46:29 these headers completely replace any pool-specific headers. 09:46:29 09:46:29 :param retries: 09:46:29 Configure the number of retries to allow before raising a 09:46:29 :class:`~urllib3.exceptions.MaxRetryError` exception. 09:46:29 09:46:29 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 09:46:29 :class:`~urllib3.util.retry.Retry` object for fine-grained control 09:46:29 over different types of retries. 09:46:29 Pass an integer number to retry connection errors that many times, 09:46:29 but no other types of errors. Pass zero to never retry. 09:46:29 09:46:29 If ``False``, then retries are disabled and any exception is raised 09:46:29 immediately. Also, instead of raising a MaxRetryError on redirects, 09:46:29 the redirect response will be returned. 09:46:29 09:46:29 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 09:46:29 09:46:29 :param redirect: 09:46:29 If True, automatically handle redirects (status codes 301, 302, 09:46:29 303, 307, 308). Each redirect counts as a retry. Disabling retries 09:46:29 will disable redirect, too. 09:46:29 09:46:29 :param assert_same_host: 09:46:29 If ``True``, will make sure that the host of the pool requests is 09:46:29 consistent else will raise HostChangedError. When ``False``, you can 09:46:29 use the pool on an HTTP proxy and request foreign hosts. 09:46:29 09:46:29 :param timeout: 09:46:29 If specified, overrides the default timeout for this one 09:46:29 request. It may be a float (in seconds) or an instance of 09:46:29 :class:`urllib3.util.Timeout`. 09:46:29 09:46:29 :param pool_timeout: 09:46:29 If set and the pool is set to block=True, then this method will 09:46:29 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 09:46:29 connection is available within the time period. 09:46:29 09:46:29 :param bool preload_content: 09:46:29 If True, the response's body will be preloaded into memory. 09:46:29 09:46:29 :param bool decode_content: 09:46:29 If True, will attempt to decode the body based on the 09:46:29 'content-encoding' header. 09:46:29 09:46:29 :param release_conn: 09:46:29 If False, then the urlopen call will not release the connection 09:46:29 back into the pool once a response is received (but will release if 09:46:29 you read the entire contents of the response such as when 09:46:29 `preload_content=True`). This is useful if you're not preloading 09:46:29 the response's content immediately. You will need to call 09:46:29 ``r.release_conn()`` on the response ``r`` to return the connection 09:46:29 back into the pool. If None, it takes the value of ``preload_content`` 09:46:29 which defaults to ``True``. 09:46:29 09:46:29 :param bool chunked: 09:46:29 If True, urllib3 will send the body using chunked transfer 09:46:29 encoding. Otherwise, urllib3 will send the body using the standard 09:46:29 content-length form. Defaults to False. 09:46:29 09:46:29 :param int body_pos: 09:46:29 Position to seek to in file-like body in the event of a retry or 09:46:29 redirect. Typically this won't need to be set because urllib3 will 09:46:29 auto-populate the value when needed. 09:46:29 """ 09:46:29 parsed_url = parse_url(url) 09:46:29 destination_scheme = parsed_url.scheme 09:46:29 09:46:29 if headers is None: 09:46:29 headers = self.headers 09:46:29 09:46:29 if not isinstance(retries, Retry): 09:46:29 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 09:46:29 09:46:29 if release_conn is None: 09:46:29 release_conn = preload_content 09:46:29 09:46:29 # Check host 09:46:29 if assert_same_host and not self.is_same_host(url): 09:46:29 raise HostChangedError(self, url, retries) 09:46:29 09:46:29 # Ensure that the URL we're connecting to is properly encoded 09:46:29 if url.startswith("/"): 09:46:29 url = to_str(_encode_target(url)) 09:46:29 else: 09:46:29 url = to_str(parsed_url.url) 09:46:29 09:46:29 conn = None 09:46:29 09:46:29 # Track whether `conn` needs to be released before 09:46:29 # returning/raising/recursing. Update this variable if necessary, and 09:46:29 # leave `release_conn` constant throughout the function. That way, if 09:46:29 # the function recurses, the original value of `release_conn` will be 09:46:29 # passed down into the recursive call, and its value will be respected. 09:46:29 # 09:46:29 # See issue #651 [1] for details. 09:46:29 # 09:46:29 # [1] 09:46:29 release_this_conn = release_conn 09:46:29 09:46:29 http_tunnel_required = connection_requires_http_tunnel( 09:46:29 self.proxy, self.proxy_config, destination_scheme 09:46:29 ) 09:46:29 09:46:29 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 09:46:29 # have to copy the headers dict so we can safely change it without those 09:46:29 # changes being reflected in anyone else's copy. 09:46:29 if not http_tunnel_required: 09:46:29 headers = headers.copy() # type: ignore[attr-defined] 09:46:29 headers.update(self.proxy_headers) # type: ignore[union-attr] 09:46:29 09:46:29 # Must keep the exception bound to a separate variable or else Python 3 09:46:29 # complains about UnboundLocalError. 09:46:29 err = None 09:46:29 09:46:29 # Keep track of whether we cleanly exited the except block. This 09:46:29 # ensures we do proper cleanup in finally. 09:46:29 clean_exit = False 09:46:29 09:46:29 # Rewind body position, if needed. Record current position 09:46:29 # for future rewinds in the event of a redirect/retry. 09:46:29 body_pos = set_file_position(body, body_pos) 09:46:29 09:46:29 try: 09:46:29 # Request a connection from the queue. 09:46:29 timeout_obj = self._get_timeout(timeout) 09:46:29 conn = self._get_conn(timeout=pool_timeout) 09:46:29 09:46:29 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 09:46:29 09:46:29 # Is this a closed/new connection that requires CONNECT tunnelling? 09:46:29 if self.proxy is not None and http_tunnel_required and conn.is_closed: 09:46:29 try: 09:46:29 self._prepare_proxy(conn) 09:46:29 except (BaseSSLError, OSError, SocketTimeout) as e: 09:46:29 self._raise_timeout( 09:46:29 err=e, url=self.proxy.url, timeout_value=conn.timeout 09:46:29 ) 09:46:29 raise 09:46:29 09:46:29 # If we're going to release the connection in ``finally:``, then 09:46:29 # the response doesn't need to know about the connection. Otherwise 09:46:29 # it will also try to release it and we'll have a double-release 09:46:29 # mess. 09:46:29 response_conn = conn if not release_conn else None 09:46:29 09:46:29 # Make the request on the HTTPConnection object 09:46:29 > response = self._make_request( 09:46:29 conn, 09:46:29 method, 09:46:29 url, 09:46:29 timeout=timeout_obj, 09:46:29 body=body, 09:46:29 headers=headers, 09:46:29 chunked=chunked, 09:46:29 retries=retries, 09:46:29 response_conn=response_conn, 09:46:29 preload_content=preload_content, 09:46:29 decode_content=decode_content, 09:46:29 **response_kw, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 09:46:29 conn.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 09:46:29 self.endheaders() 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 09:46:29 self._send_output(message_body, encode_chunked=encode_chunked) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 09:46:29 self.send(msg) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 09:46:29 self.connect() 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 09:46:29 self.sock = self._new_conn() 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 except socket.gaierror as e: 09:46:29 raise NameResolutionError(self.host, self, e) from e 09:46:29 except SocketTimeout as e: 09:46:29 raise ConnectTimeoutError( 09:46:29 self, 09:46:29 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 09:46:29 ) from e 09:46:29 09:46:29 except OSError as e: 09:46:29 > raise NewConnectionError( 09:46:29 self, f"Failed to establish a new connection: {e}" 09:46:29 ) from e 09:46:29 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 > resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 09:46:29 retries = retries.increment( 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 method = 'PUT' 09:46:29 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRC01' 09:46:29 response = None 09:46:29 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 09:46:29 _pool = 09:46:29 _stacktrace = 09:46:29 09:46:29 def increment( 09:46:29 self, 09:46:29 method: str | None = None, 09:46:29 url: str | None = None, 09:46:29 response: BaseHTTPResponse | None = None, 09:46:29 error: Exception | None = None, 09:46:29 _pool: ConnectionPool | None = None, 09:46:29 _stacktrace: TracebackType | None = None, 09:46:29 ) -> Self: 09:46:29 """Return a new Retry object with incremented retry counters. 09:46:29 09:46:29 :param response: A response object, or None, if the server did not 09:46:29 return a response. 09:46:29 :type response: :class:`~urllib3.response.BaseHTTPResponse` 09:46:29 :param Exception error: An error encountered during the request, or 09:46:29 None if the response was received successfully. 09:46:29 09:46:29 :return: A new ``Retry`` object. 09:46:29 """ 09:46:29 if self.total is False and error: 09:46:29 # Disabled, indicate to re-raise the error. 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 09:46:29 total = self.total 09:46:29 if total is not None: 09:46:29 total -= 1 09:46:29 09:46:29 connect = self.connect 09:46:29 read = self.read 09:46:29 redirect = self.redirect 09:46:29 status_count = self.status 09:46:29 other = self.other 09:46:29 cause = "unknown" 09:46:29 status = None 09:46:29 redirect_location = None 09:46:29 09:46:29 if error and self._is_connection_error(error): 09:46:29 # Connect retry? 09:46:29 if connect is False: 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif connect is not None: 09:46:29 connect -= 1 09:46:29 09:46:29 elif error and self._is_read_error(error): 09:46:29 # Read retry? 09:46:29 if read is False or method is None or not self._is_method_retryable(method): 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif read is not None: 09:46:29 read -= 1 09:46:29 09:46:29 elif error: 09:46:29 # Other retry? 09:46:29 if other is not None: 09:46:29 other -= 1 09:46:29 09:46:29 elif response and response.get_redirect_location(): 09:46:29 # Redirect retry? 09:46:29 if redirect is not None: 09:46:29 redirect -= 1 09:46:29 cause = "too many redirects" 09:46:29 response_redirect_location = response.get_redirect_location() 09:46:29 if response_redirect_location: 09:46:29 redirect_location = response_redirect_location 09:46:29 status = response.status 09:46:29 09:46:29 else: 09:46:29 # Incrementing because of a server error like a 500 in 09:46:29 # status_forcelist and the given method is in the allowed_methods 09:46:29 cause = ResponseError.GENERIC_ERROR 09:46:29 if response and response.status: 09:46:29 if status_count is not None: 09:46:29 status_count -= 1 09:46:29 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 09:46:29 status = response.status 09:46:29 09:46:29 history = self.history + ( 09:46:29 RequestHistory(method, url, error, status, redirect_location), 09:46:29 ) 09:46:29 09:46:29 new_retry = self.new( 09:46:29 total=total, 09:46:29 connect=connect, 09:46:29 read=read, 09:46:29 redirect=redirect, 09:46:29 status=status_count, 09:46:29 other=other, 09:46:29 history=history, 09:46:29 ) 09:46:29 09:46:29 if new_retry.is_exhausted(): 09:46:29 reason = error or ResponseError(cause) 09:46:29 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 09:46:29 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRC01 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 09:46:29 09:46:29 During handling of the above exception, another exception occurred: 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_02_xpdrC_device_connected(self): 09:46:29 > response = test_utils.mount_device("XPDRC01", ('xpdrc', self.NODE_VERSION)) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:56: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 transportpce_tests/common/test_utils.py:344: in mount_device 09:46:29 response = put_request(url[RESTCONF_VERSION].format('{}', node), body) 09:46:29 transportpce_tests/common/test_utils.py:124: in put_request 09:46:29 return requests.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 09:46:29 return session.request(method=method, url=url, **kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 09:46:29 resp = self.send(prep, **send_kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 09:46:29 r = adapter.send(request, **kwargs) 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 except (ProtocolError, OSError) as err: 09:46:29 raise ConnectionError(err, request=request) 09:46:29 09:46:29 except MaxRetryError as e: 09:46:29 if isinstance(e.reason, ConnectTimeoutError): 09:46:29 # TODO: Remove this in 3.0.0: see #2811 09:46:29 if not isinstance(e.reason, NewConnectionError): 09:46:29 raise ConnectTimeout(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, ResponseError): 09:46:29 raise RetryError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _ProxyError): 09:46:29 raise ProxyError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _SSLError): 09:46:29 # This branch is for urllib3 v1.22 and later. 09:46:29 raise SSLError(e, request=request) 09:46:29 09:46:29 > raise ConnectionError(e, request=request) 09:46:29 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRC01 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_02_xpdrC_device_connected 09:46:29 ______________ TransportOlmTesting.test_03_rdmA_device_connected _______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 > sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 09:46:29 raise err 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 address = ('localhost', 8182), timeout = 10, source_address = None 09:46:29 socket_options = [(6, 1, 1)] 09:46:29 09:46:29 def create_connection( 09:46:29 address: tuple[str, int], 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 source_address: tuple[str, int] | None = None, 09:46:29 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 09:46:29 ) -> socket.socket: 09:46:29 """Connect to *address* and return the socket object. 09:46:29 09:46:29 Convenience function. Connect to *address* (a 2-tuple ``(host, 09:46:29 port)``) and return the socket object. Passing the optional 09:46:29 *timeout* parameter will set the timeout on the socket instance 09:46:29 before attempting to connect. If no *timeout* is supplied, the 09:46:29 global default timeout setting returned by :func:`socket.getdefaulttimeout` 09:46:29 is used. If *source_address* is set it must be a tuple of (host, port) 09:46:29 for the socket to bind as a source address before making the connection. 09:46:29 An host of '' or port 0 tells the OS to use the default. 09:46:29 """ 09:46:29 09:46:29 host, port = address 09:46:29 if host.startswith("["): 09:46:29 host = host.strip("[]") 09:46:29 err = None 09:46:29 09:46:29 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 09:46:29 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 09:46:29 # The original create_connection function always returns all records. 09:46:29 family = allowed_gai_family() 09:46:29 09:46:29 try: 09:46:29 host.encode("idna") 09:46:29 except UnicodeError: 09:46:29 raise LocationParseError(f"'{host}', label empty or too long") from None 09:46:29 09:46:29 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 09:46:29 af, socktype, proto, canonname, sa = res 09:46:29 sock = None 09:46:29 try: 09:46:29 sock = socket.socket(af, socktype, proto) 09:46:29 09:46:29 # If provided, set socket level options before connecting. 09:46:29 _set_socket_options(sock, socket_options) 09:46:29 09:46:29 if timeout is not _DEFAULT_TIMEOUT: 09:46:29 sock.settimeout(timeout) 09:46:29 if source_address: 09:46:29 sock.bind(source_address) 09:46:29 > sock.connect(sa) 09:46:29 E ConnectionRefusedError: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 method = 'PUT' 09:46:29 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMA01' 09:46:29 body = '{"node": [{"node-id": "ROADMA01", "netconf-node-topology:host": "127.0.0.1", "netconf-node-topology:port": "17821", "...lis": "60000", "netconf-node-topology:max-connection-attempts": "0", "netconf-node-topology:keepalive-delay": "120"}]}' 09:46:29 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '589', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 09:46:29 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 redirect = False, assert_same_host = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 09:46:29 release_conn = False, chunked = False, body_pos = None, preload_content = False 09:46:29 decode_content = False, response_kw = {} 09:46:29 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMA01', query=None, fragment=None) 09:46:29 destination_scheme = None, conn = None, release_this_conn = True 09:46:29 http_tunnel_required = False, err = None, clean_exit = False 09:46:29 09:46:29 def urlopen( # type: ignore[override] 09:46:29 self, 09:46:29 method: str, 09:46:29 url: str, 09:46:29 body: _TYPE_BODY | None = None, 09:46:29 headers: typing.Mapping[str, str] | None = None, 09:46:29 retries: Retry | bool | int | None = None, 09:46:29 redirect: bool = True, 09:46:29 assert_same_host: bool = True, 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 pool_timeout: int | None = None, 09:46:29 release_conn: bool | None = None, 09:46:29 chunked: bool = False, 09:46:29 body_pos: _TYPE_BODY_POSITION | None = None, 09:46:29 preload_content: bool = True, 09:46:29 decode_content: bool = True, 09:46:29 **response_kw: typing.Any, 09:46:29 ) -> BaseHTTPResponse: 09:46:29 """ 09:46:29 Get a connection from the pool and perform an HTTP request. This is the 09:46:29 lowest level call for making a request, so you'll need to specify all 09:46:29 the raw details. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 More commonly, it's appropriate to use a convenience method 09:46:29 such as :meth:`request`. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 `release_conn` will only behave as expected if 09:46:29 `preload_content=False` because we want to make 09:46:29 `preload_content=False` the default behaviour someday soon without 09:46:29 breaking backwards compatibility. 09:46:29 09:46:29 :param method: 09:46:29 HTTP request method (such as GET, POST, PUT, etc.) 09:46:29 09:46:29 :param url: 09:46:29 The URL to perform the request on. 09:46:29 09:46:29 :param body: 09:46:29 Data to send in the request body, either :class:`str`, :class:`bytes`, 09:46:29 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 09:46:29 09:46:29 :param headers: 09:46:29 Dictionary of custom headers to send, such as User-Agent, 09:46:29 If-None-Match, etc. If None, pool headers are used. If provided, 09:46:29 these headers completely replace any pool-specific headers. 09:46:29 09:46:29 :param retries: 09:46:29 Configure the number of retries to allow before raising a 09:46:29 :class:`~urllib3.exceptions.MaxRetryError` exception. 09:46:29 09:46:29 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 09:46:29 :class:`~urllib3.util.retry.Retry` object for fine-grained control 09:46:29 over different types of retries. 09:46:29 Pass an integer number to retry connection errors that many times, 09:46:29 but no other types of errors. Pass zero to never retry. 09:46:29 09:46:29 If ``False``, then retries are disabled and any exception is raised 09:46:29 immediately. Also, instead of raising a MaxRetryError on redirects, 09:46:29 the redirect response will be returned. 09:46:29 09:46:29 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 09:46:29 09:46:29 :param redirect: 09:46:29 If True, automatically handle redirects (status codes 301, 302, 09:46:29 303, 307, 308). Each redirect counts as a retry. Disabling retries 09:46:29 will disable redirect, too. 09:46:29 09:46:29 :param assert_same_host: 09:46:29 If ``True``, will make sure that the host of the pool requests is 09:46:29 consistent else will raise HostChangedError. When ``False``, you can 09:46:29 use the pool on an HTTP proxy and request foreign hosts. 09:46:29 09:46:29 :param timeout: 09:46:29 If specified, overrides the default timeout for this one 09:46:29 request. It may be a float (in seconds) or an instance of 09:46:29 :class:`urllib3.util.Timeout`. 09:46:29 09:46:29 :param pool_timeout: 09:46:29 If set and the pool is set to block=True, then this method will 09:46:29 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 09:46:29 connection is available within the time period. 09:46:29 09:46:29 :param bool preload_content: 09:46:29 If True, the response's body will be preloaded into memory. 09:46:29 09:46:29 :param bool decode_content: 09:46:29 If True, will attempt to decode the body based on the 09:46:29 'content-encoding' header. 09:46:29 09:46:29 :param release_conn: 09:46:29 If False, then the urlopen call will not release the connection 09:46:29 back into the pool once a response is received (but will release if 09:46:29 you read the entire contents of the response such as when 09:46:29 `preload_content=True`). This is useful if you're not preloading 09:46:29 the response's content immediately. You will need to call 09:46:29 ``r.release_conn()`` on the response ``r`` to return the connection 09:46:29 back into the pool. If None, it takes the value of ``preload_content`` 09:46:29 which defaults to ``True``. 09:46:29 09:46:29 :param bool chunked: 09:46:29 If True, urllib3 will send the body using chunked transfer 09:46:29 encoding. Otherwise, urllib3 will send the body using the standard 09:46:29 content-length form. Defaults to False. 09:46:29 09:46:29 :param int body_pos: 09:46:29 Position to seek to in file-like body in the event of a retry or 09:46:29 redirect. Typically this won't need to be set because urllib3 will 09:46:29 auto-populate the value when needed. 09:46:29 """ 09:46:29 parsed_url = parse_url(url) 09:46:29 destination_scheme = parsed_url.scheme 09:46:29 09:46:29 if headers is None: 09:46:29 headers = self.headers 09:46:29 09:46:29 if not isinstance(retries, Retry): 09:46:29 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 09:46:29 09:46:29 if release_conn is None: 09:46:29 release_conn = preload_content 09:46:29 09:46:29 # Check host 09:46:29 if assert_same_host and not self.is_same_host(url): 09:46:29 raise HostChangedError(self, url, retries) 09:46:29 09:46:29 # Ensure that the URL we're connecting to is properly encoded 09:46:29 if url.startswith("/"): 09:46:29 url = to_str(_encode_target(url)) 09:46:29 else: 09:46:29 url = to_str(parsed_url.url) 09:46:29 09:46:29 conn = None 09:46:29 09:46:29 # Track whether `conn` needs to be released before 09:46:29 # returning/raising/recursing. Update this variable if necessary, and 09:46:29 # leave `release_conn` constant throughout the function. That way, if 09:46:29 # the function recurses, the original value of `release_conn` will be 09:46:29 # passed down into the recursive call, and its value will be respected. 09:46:29 # 09:46:29 # See issue #651 [1] for details. 09:46:29 # 09:46:29 # [1] 09:46:29 release_this_conn = release_conn 09:46:29 09:46:29 http_tunnel_required = connection_requires_http_tunnel( 09:46:29 self.proxy, self.proxy_config, destination_scheme 09:46:29 ) 09:46:29 09:46:29 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 09:46:29 # have to copy the headers dict so we can safely change it without those 09:46:29 # changes being reflected in anyone else's copy. 09:46:29 if not http_tunnel_required: 09:46:29 headers = headers.copy() # type: ignore[attr-defined] 09:46:29 headers.update(self.proxy_headers) # type: ignore[union-attr] 09:46:29 09:46:29 # Must keep the exception bound to a separate variable or else Python 3 09:46:29 # complains about UnboundLocalError. 09:46:29 err = None 09:46:29 09:46:29 # Keep track of whether we cleanly exited the except block. This 09:46:29 # ensures we do proper cleanup in finally. 09:46:29 clean_exit = False 09:46:29 09:46:29 # Rewind body position, if needed. Record current position 09:46:29 # for future rewinds in the event of a redirect/retry. 09:46:29 body_pos = set_file_position(body, body_pos) 09:46:29 09:46:29 try: 09:46:29 # Request a connection from the queue. 09:46:29 timeout_obj = self._get_timeout(timeout) 09:46:29 conn = self._get_conn(timeout=pool_timeout) 09:46:29 09:46:29 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 09:46:29 09:46:29 # Is this a closed/new connection that requires CONNECT tunnelling? 09:46:29 if self.proxy is not None and http_tunnel_required and conn.is_closed: 09:46:29 try: 09:46:29 self._prepare_proxy(conn) 09:46:29 except (BaseSSLError, OSError, SocketTimeout) as e: 09:46:29 self._raise_timeout( 09:46:29 err=e, url=self.proxy.url, timeout_value=conn.timeout 09:46:29 ) 09:46:29 raise 09:46:29 09:46:29 # If we're going to release the connection in ``finally:``, then 09:46:29 # the response doesn't need to know about the connection. Otherwise 09:46:29 # it will also try to release it and we'll have a double-release 09:46:29 # mess. 09:46:29 response_conn = conn if not release_conn else None 09:46:29 09:46:29 # Make the request on the HTTPConnection object 09:46:29 > response = self._make_request( 09:46:29 conn, 09:46:29 method, 09:46:29 url, 09:46:29 timeout=timeout_obj, 09:46:29 body=body, 09:46:29 headers=headers, 09:46:29 chunked=chunked, 09:46:29 retries=retries, 09:46:29 response_conn=response_conn, 09:46:29 preload_content=preload_content, 09:46:29 decode_content=decode_content, 09:46:29 **response_kw, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 09:46:29 conn.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 09:46:29 self.endheaders() 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 09:46:29 self._send_output(message_body, encode_chunked=encode_chunked) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 09:46:29 self.send(msg) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 09:46:29 self.connect() 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 09:46:29 self.sock = self._new_conn() 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 except socket.gaierror as e: 09:46:29 raise NameResolutionError(self.host, self, e) from e 09:46:29 except SocketTimeout as e: 09:46:29 raise ConnectTimeoutError( 09:46:29 self, 09:46:29 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 09:46:29 ) from e 09:46:29 09:46:29 except OSError as e: 09:46:29 > raise NewConnectionError( 09:46:29 self, f"Failed to establish a new connection: {e}" 09:46:29 ) from e 09:46:29 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 > resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 09:46:29 retries = retries.increment( 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 method = 'PUT' 09:46:29 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMA01' 09:46:29 response = None 09:46:29 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 09:46:29 _pool = 09:46:29 _stacktrace = 09:46:29 09:46:29 def increment( 09:46:29 self, 09:46:29 method: str | None = None, 09:46:29 url: str | None = None, 09:46:29 response: BaseHTTPResponse | None = None, 09:46:29 error: Exception | None = None, 09:46:29 _pool: ConnectionPool | None = None, 09:46:29 _stacktrace: TracebackType | None = None, 09:46:29 ) -> Self: 09:46:29 """Return a new Retry object with incremented retry counters. 09:46:29 09:46:29 :param response: A response object, or None, if the server did not 09:46:29 return a response. 09:46:29 :type response: :class:`~urllib3.response.BaseHTTPResponse` 09:46:29 :param Exception error: An error encountered during the request, or 09:46:29 None if the response was received successfully. 09:46:29 09:46:29 :return: A new ``Retry`` object. 09:46:29 """ 09:46:29 if self.total is False and error: 09:46:29 # Disabled, indicate to re-raise the error. 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 09:46:29 total = self.total 09:46:29 if total is not None: 09:46:29 total -= 1 09:46:29 09:46:29 connect = self.connect 09:46:29 read = self.read 09:46:29 redirect = self.redirect 09:46:29 status_count = self.status 09:46:29 other = self.other 09:46:29 cause = "unknown" 09:46:29 status = None 09:46:29 redirect_location = None 09:46:29 09:46:29 if error and self._is_connection_error(error): 09:46:29 # Connect retry? 09:46:29 if connect is False: 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif connect is not None: 09:46:29 connect -= 1 09:46:29 09:46:29 elif error and self._is_read_error(error): 09:46:29 # Read retry? 09:46:29 if read is False or method is None or not self._is_method_retryable(method): 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif read is not None: 09:46:29 read -= 1 09:46:29 09:46:29 elif error: 09:46:29 # Other retry? 09:46:29 if other is not None: 09:46:29 other -= 1 09:46:29 09:46:29 elif response and response.get_redirect_location(): 09:46:29 # Redirect retry? 09:46:29 if redirect is not None: 09:46:29 redirect -= 1 09:46:29 cause = "too many redirects" 09:46:29 response_redirect_location = response.get_redirect_location() 09:46:29 if response_redirect_location: 09:46:29 redirect_location = response_redirect_location 09:46:29 status = response.status 09:46:29 09:46:29 else: 09:46:29 # Incrementing because of a server error like a 500 in 09:46:29 # status_forcelist and the given method is in the allowed_methods 09:46:29 cause = ResponseError.GENERIC_ERROR 09:46:29 if response and response.status: 09:46:29 if status_count is not None: 09:46:29 status_count -= 1 09:46:29 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 09:46:29 status = response.status 09:46:29 09:46:29 history = self.history + ( 09:46:29 RequestHistory(method, url, error, status, redirect_location), 09:46:29 ) 09:46:29 09:46:29 new_retry = self.new( 09:46:29 total=total, 09:46:29 connect=connect, 09:46:29 read=read, 09:46:29 redirect=redirect, 09:46:29 status=status_count, 09:46:29 other=other, 09:46:29 history=history, 09:46:29 ) 09:46:29 09:46:29 if new_retry.is_exhausted(): 09:46:29 reason = error or ResponseError(cause) 09:46:29 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 09:46:29 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMA01 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 09:46:29 09:46:29 During handling of the above exception, another exception occurred: 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_03_rdmA_device_connected(self): 09:46:29 > response = test_utils.mount_device("ROADMA01", ('roadma-full', self.NODE_VERSION)) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:60: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 transportpce_tests/common/test_utils.py:344: in mount_device 09:46:29 response = put_request(url[RESTCONF_VERSION].format('{}', node), body) 09:46:29 transportpce_tests/common/test_utils.py:124: in put_request 09:46:29 return requests.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 09:46:29 return session.request(method=method, url=url, **kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 09:46:29 resp = self.send(prep, **send_kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 09:46:29 r = adapter.send(request, **kwargs) 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 except (ProtocolError, OSError) as err: 09:46:29 raise ConnectionError(err, request=request) 09:46:29 09:46:29 except MaxRetryError as e: 09:46:29 if isinstance(e.reason, ConnectTimeoutError): 09:46:29 # TODO: Remove this in 3.0.0: see #2811 09:46:29 if not isinstance(e.reason, NewConnectionError): 09:46:29 raise ConnectTimeout(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, ResponseError): 09:46:29 raise RetryError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _ProxyError): 09:46:29 raise ProxyError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _SSLError): 09:46:29 # This branch is for urllib3 v1.22 and later. 09:46:29 raise SSLError(e, request=request) 09:46:29 09:46:29 > raise ConnectionError(e, request=request) 09:46:29 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMA01 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_03_rdmA_device_connected 09:46:29 ______________ TransportOlmTesting.test_04_rdmC_device_connected _______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 > sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 09:46:29 raise err 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 address = ('localhost', 8182), timeout = 10, source_address = None 09:46:29 socket_options = [(6, 1, 1)] 09:46:29 09:46:29 def create_connection( 09:46:29 address: tuple[str, int], 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 source_address: tuple[str, int] | None = None, 09:46:29 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 09:46:29 ) -> socket.socket: 09:46:29 """Connect to *address* and return the socket object. 09:46:29 09:46:29 Convenience function. Connect to *address* (a 2-tuple ``(host, 09:46:29 port)``) and return the socket object. Passing the optional 09:46:29 *timeout* parameter will set the timeout on the socket instance 09:46:29 before attempting to connect. If no *timeout* is supplied, the 09:46:29 global default timeout setting returned by :func:`socket.getdefaulttimeout` 09:46:29 is used. If *source_address* is set it must be a tuple of (host, port) 09:46:29 for the socket to bind as a source address before making the connection. 09:46:29 An host of '' or port 0 tells the OS to use the default. 09:46:29 """ 09:46:29 09:46:29 host, port = address 09:46:29 if host.startswith("["): 09:46:29 host = host.strip("[]") 09:46:29 err = None 09:46:29 09:46:29 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 09:46:29 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 09:46:29 # The original create_connection function always returns all records. 09:46:29 family = allowed_gai_family() 09:46:29 09:46:29 try: 09:46:29 host.encode("idna") 09:46:29 except UnicodeError: 09:46:29 raise LocationParseError(f"'{host}', label empty or too long") from None 09:46:29 09:46:29 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 09:46:29 af, socktype, proto, canonname, sa = res 09:46:29 sock = None 09:46:29 try: 09:46:29 sock = socket.socket(af, socktype, proto) 09:46:29 09:46:29 # If provided, set socket level options before connecting. 09:46:29 _set_socket_options(sock, socket_options) 09:46:29 09:46:29 if timeout is not _DEFAULT_TIMEOUT: 09:46:29 sock.settimeout(timeout) 09:46:29 if source_address: 09:46:29 sock.bind(source_address) 09:46:29 > sock.connect(sa) 09:46:29 E ConnectionRefusedError: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 method = 'PUT' 09:46:29 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMC01' 09:46:29 body = '{"node": [{"node-id": "ROADMC01", "netconf-node-topology:host": "127.0.0.1", "netconf-node-topology:port": "17823", "...lis": "60000", "netconf-node-topology:max-connection-attempts": "0", "netconf-node-topology:keepalive-delay": "120"}]}' 09:46:29 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '589', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 09:46:29 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 redirect = False, assert_same_host = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 09:46:29 release_conn = False, chunked = False, body_pos = None, preload_content = False 09:46:29 decode_content = False, response_kw = {} 09:46:29 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMC01', query=None, fragment=None) 09:46:29 destination_scheme = None, conn = None, release_this_conn = True 09:46:29 http_tunnel_required = False, err = None, clean_exit = False 09:46:29 09:46:29 def urlopen( # type: ignore[override] 09:46:29 self, 09:46:29 method: str, 09:46:29 url: str, 09:46:29 body: _TYPE_BODY | None = None, 09:46:29 headers: typing.Mapping[str, str] | None = None, 09:46:29 retries: Retry | bool | int | None = None, 09:46:29 redirect: bool = True, 09:46:29 assert_same_host: bool = True, 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 pool_timeout: int | None = None, 09:46:29 release_conn: bool | None = None, 09:46:29 chunked: bool = False, 09:46:29 body_pos: _TYPE_BODY_POSITION | None = None, 09:46:29 preload_content: bool = True, 09:46:29 decode_content: bool = True, 09:46:29 **response_kw: typing.Any, 09:46:29 ) -> BaseHTTPResponse: 09:46:29 """ 09:46:29 Get a connection from the pool and perform an HTTP request. This is the 09:46:29 lowest level call for making a request, so you'll need to specify all 09:46:29 the raw details. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 More commonly, it's appropriate to use a convenience method 09:46:29 such as :meth:`request`. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 `release_conn` will only behave as expected if 09:46:29 `preload_content=False` because we want to make 09:46:29 `preload_content=False` the default behaviour someday soon without 09:46:29 breaking backwards compatibility. 09:46:29 09:46:29 :param method: 09:46:29 HTTP request method (such as GET, POST, PUT, etc.) 09:46:29 09:46:29 :param url: 09:46:29 The URL to perform the request on. 09:46:29 09:46:29 :param body: 09:46:29 Data to send in the request body, either :class:`str`, :class:`bytes`, 09:46:29 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 09:46:29 09:46:29 :param headers: 09:46:29 Dictionary of custom headers to send, such as User-Agent, 09:46:29 If-None-Match, etc. If None, pool headers are used. If provided, 09:46:29 these headers completely replace any pool-specific headers. 09:46:29 09:46:29 :param retries: 09:46:29 Configure the number of retries to allow before raising a 09:46:29 :class:`~urllib3.exceptions.MaxRetryError` exception. 09:46:29 09:46:29 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 09:46:29 :class:`~urllib3.util.retry.Retry` object for fine-grained control 09:46:29 over different types of retries. 09:46:29 Pass an integer number to retry connection errors that many times, 09:46:29 but no other types of errors. Pass zero to never retry. 09:46:29 09:46:29 If ``False``, then retries are disabled and any exception is raised 09:46:29 immediately. Also, instead of raising a MaxRetryError on redirects, 09:46:29 the redirect response will be returned. 09:46:29 09:46:29 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 09:46:29 09:46:29 :param redirect: 09:46:29 If True, automatically handle redirects (status codes 301, 302, 09:46:29 303, 307, 308). Each redirect counts as a retry. Disabling retries 09:46:29 will disable redirect, too. 09:46:29 09:46:29 :param assert_same_host: 09:46:29 If ``True``, will make sure that the host of the pool requests is 09:46:29 consistent else will raise HostChangedError. When ``False``, you can 09:46:29 use the pool on an HTTP proxy and request foreign hosts. 09:46:29 09:46:29 :param timeout: 09:46:29 If specified, overrides the default timeout for this one 09:46:29 request. It may be a float (in seconds) or an instance of 09:46:29 :class:`urllib3.util.Timeout`. 09:46:29 09:46:29 :param pool_timeout: 09:46:29 If set and the pool is set to block=True, then this method will 09:46:29 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 09:46:29 connection is available within the time period. 09:46:29 09:46:29 :param bool preload_content: 09:46:29 If True, the response's body will be preloaded into memory. 09:46:29 09:46:29 :param bool decode_content: 09:46:29 If True, will attempt to decode the body based on the 09:46:29 'content-encoding' header. 09:46:29 09:46:29 :param release_conn: 09:46:29 If False, then the urlopen call will not release the connection 09:46:29 back into the pool once a response is received (but will release if 09:46:29 you read the entire contents of the response such as when 09:46:29 `preload_content=True`). This is useful if you're not preloading 09:46:29 the response's content immediately. You will need to call 09:46:29 ``r.release_conn()`` on the response ``r`` to return the connection 09:46:29 back into the pool. If None, it takes the value of ``preload_content`` 09:46:29 which defaults to ``True``. 09:46:29 09:46:29 :param bool chunked: 09:46:29 If True, urllib3 will send the body using chunked transfer 09:46:29 encoding. Otherwise, urllib3 will send the body using the standard 09:46:29 content-length form. Defaults to False. 09:46:29 09:46:29 :param int body_pos: 09:46:29 Position to seek to in file-like body in the event of a retry or 09:46:29 redirect. Typically this won't need to be set because urllib3 will 09:46:29 auto-populate the value when needed. 09:46:29 """ 09:46:29 parsed_url = parse_url(url) 09:46:29 destination_scheme = parsed_url.scheme 09:46:29 09:46:29 if headers is None: 09:46:29 headers = self.headers 09:46:29 09:46:29 if not isinstance(retries, Retry): 09:46:29 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 09:46:29 09:46:29 if release_conn is None: 09:46:29 release_conn = preload_content 09:46:29 09:46:29 # Check host 09:46:29 if assert_same_host and not self.is_same_host(url): 09:46:29 raise HostChangedError(self, url, retries) 09:46:29 09:46:29 # Ensure that the URL we're connecting to is properly encoded 09:46:29 if url.startswith("/"): 09:46:29 url = to_str(_encode_target(url)) 09:46:29 else: 09:46:29 url = to_str(parsed_url.url) 09:46:29 09:46:29 conn = None 09:46:29 09:46:29 # Track whether `conn` needs to be released before 09:46:29 # returning/raising/recursing. Update this variable if necessary, and 09:46:29 # leave `release_conn` constant throughout the function. That way, if 09:46:29 # the function recurses, the original value of `release_conn` will be 09:46:29 # passed down into the recursive call, and its value will be respected. 09:46:29 # 09:46:29 # See issue #651 [1] for details. 09:46:29 # 09:46:29 # [1] 09:46:29 release_this_conn = release_conn 09:46:29 09:46:29 http_tunnel_required = connection_requires_http_tunnel( 09:46:29 self.proxy, self.proxy_config, destination_scheme 09:46:29 ) 09:46:29 09:46:29 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 09:46:29 # have to copy the headers dict so we can safely change it without those 09:46:29 # changes being reflected in anyone else's copy. 09:46:29 if not http_tunnel_required: 09:46:29 headers = headers.copy() # type: ignore[attr-defined] 09:46:29 headers.update(self.proxy_headers) # type: ignore[union-attr] 09:46:29 09:46:29 # Must keep the exception bound to a separate variable or else Python 3 09:46:29 # complains about UnboundLocalError. 09:46:29 err = None 09:46:29 09:46:29 # Keep track of whether we cleanly exited the except block. This 09:46:29 # ensures we do proper cleanup in finally. 09:46:29 clean_exit = False 09:46:29 09:46:29 # Rewind body position, if needed. Record current position 09:46:29 # for future rewinds in the event of a redirect/retry. 09:46:29 body_pos = set_file_position(body, body_pos) 09:46:29 09:46:29 try: 09:46:29 # Request a connection from the queue. 09:46:29 timeout_obj = self._get_timeout(timeout) 09:46:29 conn = self._get_conn(timeout=pool_timeout) 09:46:29 09:46:29 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 09:46:29 09:46:29 # Is this a closed/new connection that requires CONNECT tunnelling? 09:46:29 if self.proxy is not None and http_tunnel_required and conn.is_closed: 09:46:29 try: 09:46:29 self._prepare_proxy(conn) 09:46:29 except (BaseSSLError, OSError, SocketTimeout) as e: 09:46:29 self._raise_timeout( 09:46:29 err=e, url=self.proxy.url, timeout_value=conn.timeout 09:46:29 ) 09:46:29 raise 09:46:29 09:46:29 # If we're going to release the connection in ``finally:``, then 09:46:29 # the response doesn't need to know about the connection. Otherwise 09:46:29 # it will also try to release it and we'll have a double-release 09:46:29 # mess. 09:46:29 response_conn = conn if not release_conn else None 09:46:29 09:46:29 # Make the request on the HTTPConnection object 09:46:29 > response = self._make_request( 09:46:29 conn, 09:46:29 method, 09:46:29 url, 09:46:29 timeout=timeout_obj, 09:46:29 body=body, 09:46:29 headers=headers, 09:46:29 chunked=chunked, 09:46:29 retries=retries, 09:46:29 response_conn=response_conn, 09:46:29 preload_content=preload_content, 09:46:29 decode_content=decode_content, 09:46:29 **response_kw, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 09:46:29 conn.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 09:46:29 self.endheaders() 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 09:46:29 self._send_output(message_body, encode_chunked=encode_chunked) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 09:46:29 self.send(msg) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 09:46:29 self.connect() 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 09:46:29 self.sock = self._new_conn() 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 except socket.gaierror as e: 09:46:29 raise NameResolutionError(self.host, self, e) from e 09:46:29 except SocketTimeout as e: 09:46:29 raise ConnectTimeoutError( 09:46:29 self, 09:46:29 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 09:46:29 ) from e 09:46:29 09:46:29 except OSError as e: 09:46:29 > raise NewConnectionError( 09:46:29 self, f"Failed to establish a new connection: {e}" 09:46:29 ) from e 09:46:29 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 > resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 09:46:29 retries = retries.increment( 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 method = 'PUT' 09:46:29 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMC01' 09:46:29 response = None 09:46:29 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 09:46:29 _pool = 09:46:29 _stacktrace = 09:46:29 09:46:29 def increment( 09:46:29 self, 09:46:29 method: str | None = None, 09:46:29 url: str | None = None, 09:46:29 response: BaseHTTPResponse | None = None, 09:46:29 error: Exception | None = None, 09:46:29 _pool: ConnectionPool | None = None, 09:46:29 _stacktrace: TracebackType | None = None, 09:46:29 ) -> Self: 09:46:29 """Return a new Retry object with incremented retry counters. 09:46:29 09:46:29 :param response: A response object, or None, if the server did not 09:46:29 return a response. 09:46:29 :type response: :class:`~urllib3.response.BaseHTTPResponse` 09:46:29 :param Exception error: An error encountered during the request, or 09:46:29 None if the response was received successfully. 09:46:29 09:46:29 :return: A new ``Retry`` object. 09:46:29 """ 09:46:29 if self.total is False and error: 09:46:29 # Disabled, indicate to re-raise the error. 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 09:46:29 total = self.total 09:46:29 if total is not None: 09:46:29 total -= 1 09:46:29 09:46:29 connect = self.connect 09:46:29 read = self.read 09:46:29 redirect = self.redirect 09:46:29 status_count = self.status 09:46:29 other = self.other 09:46:29 cause = "unknown" 09:46:29 status = None 09:46:29 redirect_location = None 09:46:29 09:46:29 if error and self._is_connection_error(error): 09:46:29 # Connect retry? 09:46:29 if connect is False: 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif connect is not None: 09:46:29 connect -= 1 09:46:29 09:46:29 elif error and self._is_read_error(error): 09:46:29 # Read retry? 09:46:29 if read is False or method is None or not self._is_method_retryable(method): 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif read is not None: 09:46:29 read -= 1 09:46:29 09:46:29 elif error: 09:46:29 # Other retry? 09:46:29 if other is not None: 09:46:29 other -= 1 09:46:29 09:46:29 elif response and response.get_redirect_location(): 09:46:29 # Redirect retry? 09:46:29 if redirect is not None: 09:46:29 redirect -= 1 09:46:29 cause = "too many redirects" 09:46:29 response_redirect_location = response.get_redirect_location() 09:46:29 if response_redirect_location: 09:46:29 redirect_location = response_redirect_location 09:46:29 status = response.status 09:46:29 09:46:29 else: 09:46:29 # Incrementing because of a server error like a 500 in 09:46:29 # status_forcelist and the given method is in the allowed_methods 09:46:29 cause = ResponseError.GENERIC_ERROR 09:46:29 if response and response.status: 09:46:29 if status_count is not None: 09:46:29 status_count -= 1 09:46:29 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 09:46:29 status = response.status 09:46:29 09:46:29 history = self.history + ( 09:46:29 RequestHistory(method, url, error, status, redirect_location), 09:46:29 ) 09:46:29 09:46:29 new_retry = self.new( 09:46:29 total=total, 09:46:29 connect=connect, 09:46:29 read=read, 09:46:29 redirect=redirect, 09:46:29 status=status_count, 09:46:29 other=other, 09:46:29 history=history, 09:46:29 ) 09:46:29 09:46:29 if new_retry.is_exhausted(): 09:46:29 reason = error or ResponseError(cause) 09:46:29 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 09:46:29 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMC01 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 09:46:29 09:46:29 During handling of the above exception, another exception occurred: 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_04_rdmC_device_connected(self): 09:46:29 > response = test_utils.mount_device("ROADMC01", ('roadmc-full', self.NODE_VERSION)) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:64: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 transportpce_tests/common/test_utils.py:344: in mount_device 09:46:29 response = put_request(url[RESTCONF_VERSION].format('{}', node), body) 09:46:29 transportpce_tests/common/test_utils.py:124: in put_request 09:46:29 return requests.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 09:46:29 return session.request(method=method, url=url, **kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 09:46:29 resp = self.send(prep, **send_kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 09:46:29 r = adapter.send(request, **kwargs) 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 except (ProtocolError, OSError) as err: 09:46:29 raise ConnectionError(err, request=request) 09:46:29 09:46:29 except MaxRetryError as e: 09:46:29 if isinstance(e.reason, ConnectTimeoutError): 09:46:29 # TODO: Remove this in 3.0.0: see #2811 09:46:29 if not isinstance(e.reason, NewConnectionError): 09:46:29 raise ConnectTimeout(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, ResponseError): 09:46:29 raise RetryError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _ProxyError): 09:46:29 raise ProxyError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _SSLError): 09:46:29 # This branch is for urllib3 v1.22 and later. 09:46:29 raise SSLError(e, request=request) 09:46:29 09:46:29 > raise ConnectionError(e, request=request) 09:46:29 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMC01 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_04_rdmC_device_connected 09:46:29 _____________ TransportOlmTesting.test_05_connect_xpdrA_to_roadmA ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 > sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 09:46:29 raise err 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 address = ('localhost', 8182), timeout = 10, source_address = None 09:46:29 socket_options = [(6, 1, 1)] 09:46:29 09:46:29 def create_connection( 09:46:29 address: tuple[str, int], 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 source_address: tuple[str, int] | None = None, 09:46:29 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 09:46:29 ) -> socket.socket: 09:46:29 """Connect to *address* and return the socket object. 09:46:29 09:46:29 Convenience function. Connect to *address* (a 2-tuple ``(host, 09:46:29 port)``) and return the socket object. Passing the optional 09:46:29 *timeout* parameter will set the timeout on the socket instance 09:46:29 before attempting to connect. If no *timeout* is supplied, the 09:46:29 global default timeout setting returned by :func:`socket.getdefaulttimeout` 09:46:29 is used. If *source_address* is set it must be a tuple of (host, port) 09:46:29 for the socket to bind as a source address before making the connection. 09:46:29 An host of '' or port 0 tells the OS to use the default. 09:46:29 """ 09:46:29 09:46:29 host, port = address 09:46:29 if host.startswith("["): 09:46:29 host = host.strip("[]") 09:46:29 err = None 09:46:29 09:46:29 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 09:46:29 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 09:46:29 # The original create_connection function always returns all records. 09:46:29 family = allowed_gai_family() 09:46:29 09:46:29 try: 09:46:29 host.encode("idna") 09:46:29 except UnicodeError: 09:46:29 raise LocationParseError(f"'{host}', label empty or too long") from None 09:46:29 09:46:29 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 09:46:29 af, socktype, proto, canonname, sa = res 09:46:29 sock = None 09:46:29 try: 09:46:29 sock = socket.socket(af, socktype, proto) 09:46:29 09:46:29 # If provided, set socket level options before connecting. 09:46:29 _set_socket_options(sock, socket_options) 09:46:29 09:46:29 if timeout is not _DEFAULT_TIMEOUT: 09:46:29 sock.settimeout(timeout) 09:46:29 if source_address: 09:46:29 sock.bind(source_address) 09:46:29 > sock.connect(sa) 09:46:29 E ConnectionRefusedError: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 method = 'POST' 09:46:29 url = '/rests/operations/transportpce-networkutils:init-xpdr-rdm-links' 09:46:29 body = '{"input": {"links-input": {"xpdr-node": "XPDRA01", "xpdr-num": "1", "network-num": "1", "rdm-node": "ROADMA01", "srg-num": "1", "termination-point-num": "SRG1-PP1-TXRX"}}}' 09:46:29 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '171', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 09:46:29 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 redirect = False, assert_same_host = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 09:46:29 release_conn = False, chunked = False, body_pos = None, preload_content = False 09:46:29 decode_content = False, response_kw = {} 09:46:29 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/operations/transportpce-networkutils:init-xpdr-rdm-links', query=None, fragment=None) 09:46:29 destination_scheme = None, conn = None, release_this_conn = True 09:46:29 http_tunnel_required = False, err = None, clean_exit = False 09:46:29 09:46:29 def urlopen( # type: ignore[override] 09:46:29 self, 09:46:29 method: str, 09:46:29 url: str, 09:46:29 body: _TYPE_BODY | None = None, 09:46:29 headers: typing.Mapping[str, str] | None = None, 09:46:29 retries: Retry | bool | int | None = None, 09:46:29 redirect: bool = True, 09:46:29 assert_same_host: bool = True, 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 pool_timeout: int | None = None, 09:46:29 release_conn: bool | None = None, 09:46:29 chunked: bool = False, 09:46:29 body_pos: _TYPE_BODY_POSITION | None = None, 09:46:29 preload_content: bool = True, 09:46:29 decode_content: bool = True, 09:46:29 **response_kw: typing.Any, 09:46:29 ) -> BaseHTTPResponse: 09:46:29 """ 09:46:29 Get a connection from the pool and perform an HTTP request. This is the 09:46:29 lowest level call for making a request, so you'll need to specify all 09:46:29 the raw details. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 More commonly, it's appropriate to use a convenience method 09:46:29 such as :meth:`request`. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 `release_conn` will only behave as expected if 09:46:29 `preload_content=False` because we want to make 09:46:29 `preload_content=False` the default behaviour someday soon without 09:46:29 breaking backwards compatibility. 09:46:29 09:46:29 :param method: 09:46:29 HTTP request method (such as GET, POST, PUT, etc.) 09:46:29 09:46:29 :param url: 09:46:29 The URL to perform the request on. 09:46:29 09:46:29 :param body: 09:46:29 Data to send in the request body, either :class:`str`, :class:`bytes`, 09:46:29 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 09:46:29 09:46:29 :param headers: 09:46:29 Dictionary of custom headers to send, such as User-Agent, 09:46:29 If-None-Match, etc. If None, pool headers are used. If provided, 09:46:29 these headers completely replace any pool-specific headers. 09:46:29 09:46:29 :param retries: 09:46:29 Configure the number of retries to allow before raising a 09:46:29 :class:`~urllib3.exceptions.MaxRetryError` exception. 09:46:29 09:46:29 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 09:46:29 :class:`~urllib3.util.retry.Retry` object for fine-grained control 09:46:29 over different types of retries. 09:46:29 Pass an integer number to retry connection errors that many times, 09:46:29 but no other types of errors. Pass zero to never retry. 09:46:29 09:46:29 If ``False``, then retries are disabled and any exception is raised 09:46:29 immediately. Also, instead of raising a MaxRetryError on redirects, 09:46:29 the redirect response will be returned. 09:46:29 09:46:29 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 09:46:29 09:46:29 :param redirect: 09:46:29 If True, automatically handle redirects (status codes 301, 302, 09:46:29 303, 307, 308). Each redirect counts as a retry. Disabling retries 09:46:29 will disable redirect, too. 09:46:29 09:46:29 :param assert_same_host: 09:46:29 If ``True``, will make sure that the host of the pool requests is 09:46:29 consistent else will raise HostChangedError. When ``False``, you can 09:46:29 use the pool on an HTTP proxy and request foreign hosts. 09:46:29 09:46:29 :param timeout: 09:46:29 If specified, overrides the default timeout for this one 09:46:29 request. It may be a float (in seconds) or an instance of 09:46:29 :class:`urllib3.util.Timeout`. 09:46:29 09:46:29 :param pool_timeout: 09:46:29 If set and the pool is set to block=True, then this method will 09:46:29 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 09:46:29 connection is available within the time period. 09:46:29 09:46:29 :param bool preload_content: 09:46:29 If True, the response's body will be preloaded into memory. 09:46:29 09:46:29 :param bool decode_content: 09:46:29 If True, will attempt to decode the body based on the 09:46:29 'content-encoding' header. 09:46:29 09:46:29 :param release_conn: 09:46:29 If False, then the urlopen call will not release the connection 09:46:29 back into the pool once a response is received (but will release if 09:46:29 you read the entire contents of the response such as when 09:46:29 `preload_content=True`). This is useful if you're not preloading 09:46:29 the response's content immediately. You will need to call 09:46:29 ``r.release_conn()`` on the response ``r`` to return the connection 09:46:29 back into the pool. If None, it takes the value of ``preload_content`` 09:46:29 which defaults to ``True``. 09:46:29 09:46:29 :param bool chunked: 09:46:29 If True, urllib3 will send the body using chunked transfer 09:46:29 encoding. Otherwise, urllib3 will send the body using the standard 09:46:29 content-length form. Defaults to False. 09:46:29 09:46:29 :param int body_pos: 09:46:29 Position to seek to in file-like body in the event of a retry or 09:46:29 redirect. Typically this won't need to be set because urllib3 will 09:46:29 auto-populate the value when needed. 09:46:29 """ 09:46:29 parsed_url = parse_url(url) 09:46:29 destination_scheme = parsed_url.scheme 09:46:29 09:46:29 if headers is None: 09:46:29 headers = self.headers 09:46:29 09:46:29 if not isinstance(retries, Retry): 09:46:29 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 09:46:29 09:46:29 if release_conn is None: 09:46:29 release_conn = preload_content 09:46:29 09:46:29 # Check host 09:46:29 if assert_same_host and not self.is_same_host(url): 09:46:29 raise HostChangedError(self, url, retries) 09:46:29 09:46:29 # Ensure that the URL we're connecting to is properly encoded 09:46:29 if url.startswith("/"): 09:46:29 url = to_str(_encode_target(url)) 09:46:29 else: 09:46:29 url = to_str(parsed_url.url) 09:46:29 09:46:29 conn = None 09:46:29 09:46:29 # Track whether `conn` needs to be released before 09:46:29 # returning/raising/recursing. Update this variable if necessary, and 09:46:29 # leave `release_conn` constant throughout the function. That way, if 09:46:29 # the function recurses, the original value of `release_conn` will be 09:46:29 # passed down into the recursive call, and its value will be respected. 09:46:29 # 09:46:29 # See issue #651 [1] for details. 09:46:29 # 09:46:29 # [1] 09:46:29 release_this_conn = release_conn 09:46:29 09:46:29 http_tunnel_required = connection_requires_http_tunnel( 09:46:29 self.proxy, self.proxy_config, destination_scheme 09:46:29 ) 09:46:29 09:46:29 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 09:46:29 # have to copy the headers dict so we can safely change it without those 09:46:29 # changes being reflected in anyone else's copy. 09:46:29 if not http_tunnel_required: 09:46:29 headers = headers.copy() # type: ignore[attr-defined] 09:46:29 headers.update(self.proxy_headers) # type: ignore[union-attr] 09:46:29 09:46:29 # Must keep the exception bound to a separate variable or else Python 3 09:46:29 # complains about UnboundLocalError. 09:46:29 err = None 09:46:29 09:46:29 # Keep track of whether we cleanly exited the except block. This 09:46:29 # ensures we do proper cleanup in finally. 09:46:29 clean_exit = False 09:46:29 09:46:29 # Rewind body position, if needed. Record current position 09:46:29 # for future rewinds in the event of a redirect/retry. 09:46:29 body_pos = set_file_position(body, body_pos) 09:46:29 09:46:29 try: 09:46:29 # Request a connection from the queue. 09:46:29 timeout_obj = self._get_timeout(timeout) 09:46:29 conn = self._get_conn(timeout=pool_timeout) 09:46:29 09:46:29 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 09:46:29 09:46:29 # Is this a closed/new connection that requires CONNECT tunnelling? 09:46:29 if self.proxy is not None and http_tunnel_required and conn.is_closed: 09:46:29 try: 09:46:29 self._prepare_proxy(conn) 09:46:29 except (BaseSSLError, OSError, SocketTimeout) as e: 09:46:29 self._raise_timeout( 09:46:29 err=e, url=self.proxy.url, timeout_value=conn.timeout 09:46:29 ) 09:46:29 raise 09:46:29 09:46:29 # If we're going to release the connection in ``finally:``, then 09:46:29 # the response doesn't need to know about the connection. Otherwise 09:46:29 # it will also try to release it and we'll have a double-release 09:46:29 # mess. 09:46:29 response_conn = conn if not release_conn else None 09:46:29 09:46:29 # Make the request on the HTTPConnection object 09:46:29 > response = self._make_request( 09:46:29 conn, 09:46:29 method, 09:46:29 url, 09:46:29 timeout=timeout_obj, 09:46:29 body=body, 09:46:29 headers=headers, 09:46:29 chunked=chunked, 09:46:29 retries=retries, 09:46:29 response_conn=response_conn, 09:46:29 preload_content=preload_content, 09:46:29 decode_content=decode_content, 09:46:29 **response_kw, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 09:46:29 conn.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 09:46:29 self.endheaders() 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 09:46:29 self._send_output(message_body, encode_chunked=encode_chunked) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 09:46:29 self.send(msg) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 09:46:29 self.connect() 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 09:46:29 self.sock = self._new_conn() 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 except socket.gaierror as e: 09:46:29 raise NameResolutionError(self.host, self, e) from e 09:46:29 except SocketTimeout as e: 09:46:29 raise ConnectTimeoutError( 09:46:29 self, 09:46:29 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 09:46:29 ) from e 09:46:29 09:46:29 except OSError as e: 09:46:29 > raise NewConnectionError( 09:46:29 self, f"Failed to establish a new connection: {e}" 09:46:29 ) from e 09:46:29 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 > resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 09:46:29 retries = retries.increment( 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 method = 'POST' 09:46:29 url = '/rests/operations/transportpce-networkutils:init-xpdr-rdm-links' 09:46:29 response = None 09:46:29 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 09:46:29 _pool = 09:46:29 _stacktrace = 09:46:29 09:46:29 def increment( 09:46:29 self, 09:46:29 method: str | None = None, 09:46:29 url: str | None = None, 09:46:29 response: BaseHTTPResponse | None = None, 09:46:29 error: Exception | None = None, 09:46:29 _pool: ConnectionPool | None = None, 09:46:29 _stacktrace: TracebackType | None = None, 09:46:29 ) -> Self: 09:46:29 """Return a new Retry object with incremented retry counters. 09:46:29 09:46:29 :param response: A response object, or None, if the server did not 09:46:29 return a response. 09:46:29 :type response: :class:`~urllib3.response.BaseHTTPResponse` 09:46:29 :param Exception error: An error encountered during the request, or 09:46:29 None if the response was received successfully. 09:46:29 09:46:29 :return: A new ``Retry`` object. 09:46:29 """ 09:46:29 if self.total is False and error: 09:46:29 # Disabled, indicate to re-raise the error. 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 09:46:29 total = self.total 09:46:29 if total is not None: 09:46:29 total -= 1 09:46:29 09:46:29 connect = self.connect 09:46:29 read = self.read 09:46:29 redirect = self.redirect 09:46:29 status_count = self.status 09:46:29 other = self.other 09:46:29 cause = "unknown" 09:46:29 status = None 09:46:29 redirect_location = None 09:46:29 09:46:29 if error and self._is_connection_error(error): 09:46:29 # Connect retry? 09:46:29 if connect is False: 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif connect is not None: 09:46:29 connect -= 1 09:46:29 09:46:29 elif error and self._is_read_error(error): 09:46:29 # Read retry? 09:46:29 if read is False or method is None or not self._is_method_retryable(method): 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif read is not None: 09:46:29 read -= 1 09:46:29 09:46:29 elif error: 09:46:29 # Other retry? 09:46:29 if other is not None: 09:46:29 other -= 1 09:46:29 09:46:29 elif response and response.get_redirect_location(): 09:46:29 # Redirect retry? 09:46:29 if redirect is not None: 09:46:29 redirect -= 1 09:46:29 cause = "too many redirects" 09:46:29 response_redirect_location = response.get_redirect_location() 09:46:29 if response_redirect_location: 09:46:29 redirect_location = response_redirect_location 09:46:29 status = response.status 09:46:29 09:46:29 else: 09:46:29 # Incrementing because of a server error like a 500 in 09:46:29 # status_forcelist and the given method is in the allowed_methods 09:46:29 cause = ResponseError.GENERIC_ERROR 09:46:29 if response and response.status: 09:46:29 if status_count is not None: 09:46:29 status_count -= 1 09:46:29 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 09:46:29 status = response.status 09:46:29 09:46:29 history = self.history + ( 09:46:29 RequestHistory(method, url, error, status, redirect_location), 09:46:29 ) 09:46:29 09:46:29 new_retry = self.new( 09:46:29 total=total, 09:46:29 connect=connect, 09:46:29 read=read, 09:46:29 redirect=redirect, 09:46:29 status=status_count, 09:46:29 other=other, 09:46:29 history=history, 09:46:29 ) 09:46:29 09:46:29 if new_retry.is_exhausted(): 09:46:29 reason = error or ResponseError(cause) 09:46:29 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 09:46:29 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/operations/transportpce-networkutils:init-xpdr-rdm-links (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 09:46:29 09:46:29 During handling of the above exception, another exception occurred: 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_05_connect_xpdrA_to_roadmA(self): 09:46:29 > response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-networkutils', 'init-xpdr-rdm-links', 09:46:29 {'links-input': {'xpdr-node': 'XPDRA01', 'xpdr-num': '1', 'network-num': '1', 09:46:29 'rdm-node': 'ROADMA01', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:68: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 transportpce_tests/common/test_utils.py:684: in transportpce_api_rpc_request 09:46:29 response = post_request(url, data) 09:46:29 transportpce_tests/common/test_utils.py:142: in post_request 09:46:29 return requests.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 09:46:29 return session.request(method=method, url=url, **kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 09:46:29 resp = self.send(prep, **send_kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 09:46:29 r = adapter.send(request, **kwargs) 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 except (ProtocolError, OSError) as err: 09:46:29 raise ConnectionError(err, request=request) 09:46:29 09:46:29 except MaxRetryError as e: 09:46:29 if isinstance(e.reason, ConnectTimeoutError): 09:46:29 # TODO: Remove this in 3.0.0: see #2811 09:46:29 if not isinstance(e.reason, NewConnectionError): 09:46:29 raise ConnectTimeout(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, ResponseError): 09:46:29 raise RetryError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _ProxyError): 09:46:29 raise ProxyError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _SSLError): 09:46:29 # This branch is for urllib3 v1.22 and later. 09:46:29 raise SSLError(e, request=request) 09:46:29 09:46:29 > raise ConnectionError(e, request=request) 09:46:29 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/operations/transportpce-networkutils:init-xpdr-rdm-links (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_05_connect_xpdrA_to_roadmA 09:46:29 _____________ TransportOlmTesting.test_06_connect_roadmA_to_xpdrA ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 > sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 09:46:29 raise err 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 address = ('localhost', 8182), timeout = 10, source_address = None 09:46:29 socket_options = [(6, 1, 1)] 09:46:29 09:46:29 def create_connection( 09:46:29 address: tuple[str, int], 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 source_address: tuple[str, int] | None = None, 09:46:29 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 09:46:29 ) -> socket.socket: 09:46:29 """Connect to *address* and return the socket object. 09:46:29 09:46:29 Convenience function. Connect to *address* (a 2-tuple ``(host, 09:46:29 port)``) and return the socket object. Passing the optional 09:46:29 *timeout* parameter will set the timeout on the socket instance 09:46:29 before attempting to connect. If no *timeout* is supplied, the 09:46:29 global default timeout setting returned by :func:`socket.getdefaulttimeout` 09:46:29 is used. If *source_address* is set it must be a tuple of (host, port) 09:46:29 for the socket to bind as a source address before making the connection. 09:46:29 An host of '' or port 0 tells the OS to use the default. 09:46:29 """ 09:46:29 09:46:29 host, port = address 09:46:29 if host.startswith("["): 09:46:29 host = host.strip("[]") 09:46:29 err = None 09:46:29 09:46:29 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 09:46:29 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 09:46:29 # The original create_connection function always returns all records. 09:46:29 family = allowed_gai_family() 09:46:29 09:46:29 try: 09:46:29 host.encode("idna") 09:46:29 except UnicodeError: 09:46:29 raise LocationParseError(f"'{host}', label empty or too long") from None 09:46:29 09:46:29 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 09:46:29 af, socktype, proto, canonname, sa = res 09:46:29 sock = None 09:46:29 try: 09:46:29 sock = socket.socket(af, socktype, proto) 09:46:29 09:46:29 # If provided, set socket level options before connecting. 09:46:29 _set_socket_options(sock, socket_options) 09:46:29 09:46:29 if timeout is not _DEFAULT_TIMEOUT: 09:46:29 sock.settimeout(timeout) 09:46:29 if source_address: 09:46:29 sock.bind(source_address) 09:46:29 > sock.connect(sa) 09:46:29 E ConnectionRefusedError: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 method = 'POST' 09:46:29 url = '/rests/operations/transportpce-networkutils:init-rdm-xpdr-links' 09:46:29 body = '{"input": {"links-input": {"xpdr-node": "XPDRA01", "xpdr-num": "1", "network-num": "1", "rdm-node": "ROADMA01", "srg-num": "1", "termination-point-num": "SRG1-PP1-TXRX"}}}' 09:46:29 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '171', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 09:46:29 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 redirect = False, assert_same_host = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 09:46:29 release_conn = False, chunked = False, body_pos = None, preload_content = False 09:46:29 decode_content = False, response_kw = {} 09:46:29 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/operations/transportpce-networkutils:init-rdm-xpdr-links', query=None, fragment=None) 09:46:29 destination_scheme = None, conn = None, release_this_conn = True 09:46:29 http_tunnel_required = False, err = None, clean_exit = False 09:46:29 09:46:29 def urlopen( # type: ignore[override] 09:46:29 self, 09:46:29 method: str, 09:46:29 url: str, 09:46:29 body: _TYPE_BODY | None = None, 09:46:29 headers: typing.Mapping[str, str] | None = None, 09:46:29 retries: Retry | bool | int | None = None, 09:46:29 redirect: bool = True, 09:46:29 assert_same_host: bool = True, 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 pool_timeout: int | None = None, 09:46:29 release_conn: bool | None = None, 09:46:29 chunked: bool = False, 09:46:29 body_pos: _TYPE_BODY_POSITION | None = None, 09:46:29 preload_content: bool = True, 09:46:29 decode_content: bool = True, 09:46:29 **response_kw: typing.Any, 09:46:29 ) -> BaseHTTPResponse: 09:46:29 """ 09:46:29 Get a connection from the pool and perform an HTTP request. This is the 09:46:29 lowest level call for making a request, so you'll need to specify all 09:46:29 the raw details. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 More commonly, it's appropriate to use a convenience method 09:46:29 such as :meth:`request`. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 `release_conn` will only behave as expected if 09:46:29 `preload_content=False` because we want to make 09:46:29 `preload_content=False` the default behaviour someday soon without 09:46:29 breaking backwards compatibility. 09:46:29 09:46:29 :param method: 09:46:29 HTTP request method (such as GET, POST, PUT, etc.) 09:46:29 09:46:29 :param url: 09:46:29 The URL to perform the request on. 09:46:29 09:46:29 :param body: 09:46:29 Data to send in the request body, either :class:`str`, :class:`bytes`, 09:46:29 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 09:46:29 09:46:29 :param headers: 09:46:29 Dictionary of custom headers to send, such as User-Agent, 09:46:29 If-None-Match, etc. If None, pool headers are used. If provided, 09:46:29 these headers completely replace any pool-specific headers. 09:46:29 09:46:29 :param retries: 09:46:29 Configure the number of retries to allow before raising a 09:46:29 :class:`~urllib3.exceptions.MaxRetryError` exception. 09:46:29 09:46:29 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 09:46:29 :class:`~urllib3.util.retry.Retry` object for fine-grained control 09:46:29 over different types of retries. 09:46:29 Pass an integer number to retry connection errors that many times, 09:46:29 but no other types of errors. Pass zero to never retry. 09:46:29 09:46:29 If ``False``, then retries are disabled and any exception is raised 09:46:29 immediately. Also, instead of raising a MaxRetryError on redirects, 09:46:29 the redirect response will be returned. 09:46:29 09:46:29 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 09:46:29 09:46:29 :param redirect: 09:46:29 If True, automatically handle redirects (status codes 301, 302, 09:46:29 303, 307, 308). Each redirect counts as a retry. Disabling retries 09:46:29 will disable redirect, too. 09:46:29 09:46:29 :param assert_same_host: 09:46:29 If ``True``, will make sure that the host of the pool requests is 09:46:29 consistent else will raise HostChangedError. When ``False``, you can 09:46:29 use the pool on an HTTP proxy and request foreign hosts. 09:46:29 09:46:29 :param timeout: 09:46:29 If specified, overrides the default timeout for this one 09:46:29 request. It may be a float (in seconds) or an instance of 09:46:29 :class:`urllib3.util.Timeout`. 09:46:29 09:46:29 :param pool_timeout: 09:46:29 If set and the pool is set to block=True, then this method will 09:46:29 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 09:46:29 connection is available within the time period. 09:46:29 09:46:29 :param bool preload_content: 09:46:29 If True, the response's body will be preloaded into memory. 09:46:29 09:46:29 :param bool decode_content: 09:46:29 If True, will attempt to decode the body based on the 09:46:29 'content-encoding' header. 09:46:29 09:46:29 :param release_conn: 09:46:29 If False, then the urlopen call will not release the connection 09:46:29 back into the pool once a response is received (but will release if 09:46:29 you read the entire contents of the response such as when 09:46:29 `preload_content=True`). This is useful if you're not preloading 09:46:29 the response's content immediately. You will need to call 09:46:29 ``r.release_conn()`` on the response ``r`` to return the connection 09:46:29 back into the pool. If None, it takes the value of ``preload_content`` 09:46:29 which defaults to ``True``. 09:46:29 09:46:29 :param bool chunked: 09:46:29 If True, urllib3 will send the body using chunked transfer 09:46:29 encoding. Otherwise, urllib3 will send the body using the standard 09:46:29 content-length form. Defaults to False. 09:46:29 09:46:29 :param int body_pos: 09:46:29 Position to seek to in file-like body in the event of a retry or 09:46:29 redirect. Typically this won't need to be set because urllib3 will 09:46:29 auto-populate the value when needed. 09:46:29 """ 09:46:29 parsed_url = parse_url(url) 09:46:29 destination_scheme = parsed_url.scheme 09:46:29 09:46:29 if headers is None: 09:46:29 headers = self.headers 09:46:29 09:46:29 if not isinstance(retries, Retry): 09:46:29 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 09:46:29 09:46:29 if release_conn is None: 09:46:29 release_conn = preload_content 09:46:29 09:46:29 # Check host 09:46:29 if assert_same_host and not self.is_same_host(url): 09:46:29 raise HostChangedError(self, url, retries) 09:46:29 09:46:29 # Ensure that the URL we're connecting to is properly encoded 09:46:29 if url.startswith("/"): 09:46:29 url = to_str(_encode_target(url)) 09:46:29 else: 09:46:29 url = to_str(parsed_url.url) 09:46:29 09:46:29 conn = None 09:46:29 09:46:29 # Track whether `conn` needs to be released before 09:46:29 # returning/raising/recursing. Update this variable if necessary, and 09:46:29 # leave `release_conn` constant throughout the function. That way, if 09:46:29 # the function recurses, the original value of `release_conn` will be 09:46:29 # passed down into the recursive call, and its value will be respected. 09:46:29 # 09:46:29 # See issue #651 [1] for details. 09:46:29 # 09:46:29 # [1] 09:46:29 release_this_conn = release_conn 09:46:29 09:46:29 http_tunnel_required = connection_requires_http_tunnel( 09:46:29 self.proxy, self.proxy_config, destination_scheme 09:46:29 ) 09:46:29 09:46:29 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 09:46:29 # have to copy the headers dict so we can safely change it without those 09:46:29 # changes being reflected in anyone else's copy. 09:46:29 if not http_tunnel_required: 09:46:29 headers = headers.copy() # type: ignore[attr-defined] 09:46:29 headers.update(self.proxy_headers) # type: ignore[union-attr] 09:46:29 09:46:29 # Must keep the exception bound to a separate variable or else Python 3 09:46:29 # complains about UnboundLocalError. 09:46:29 err = None 09:46:29 09:46:29 # Keep track of whether we cleanly exited the except block. This 09:46:29 # ensures we do proper cleanup in finally. 09:46:29 clean_exit = False 09:46:29 09:46:29 # Rewind body position, if needed. Record current position 09:46:29 # for future rewinds in the event of a redirect/retry. 09:46:29 body_pos = set_file_position(body, body_pos) 09:46:29 09:46:29 try: 09:46:29 # Request a connection from the queue. 09:46:29 timeout_obj = self._get_timeout(timeout) 09:46:29 conn = self._get_conn(timeout=pool_timeout) 09:46:29 09:46:29 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 09:46:29 09:46:29 # Is this a closed/new connection that requires CONNECT tunnelling? 09:46:29 if self.proxy is not None and http_tunnel_required and conn.is_closed: 09:46:29 try: 09:46:29 self._prepare_proxy(conn) 09:46:29 except (BaseSSLError, OSError, SocketTimeout) as e: 09:46:29 self._raise_timeout( 09:46:29 err=e, url=self.proxy.url, timeout_value=conn.timeout 09:46:29 ) 09:46:29 raise 09:46:29 09:46:29 # If we're going to release the connection in ``finally:``, then 09:46:29 # the response doesn't need to know about the connection. Otherwise 09:46:29 # it will also try to release it and we'll have a double-release 09:46:29 # mess. 09:46:29 response_conn = conn if not release_conn else None 09:46:29 09:46:29 # Make the request on the HTTPConnection object 09:46:29 > response = self._make_request( 09:46:29 conn, 09:46:29 method, 09:46:29 url, 09:46:29 timeout=timeout_obj, 09:46:29 body=body, 09:46:29 headers=headers, 09:46:29 chunked=chunked, 09:46:29 retries=retries, 09:46:29 response_conn=response_conn, 09:46:29 preload_content=preload_content, 09:46:29 decode_content=decode_content, 09:46:29 **response_kw, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 09:46:29 conn.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 09:46:29 self.endheaders() 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 09:46:29 self._send_output(message_body, encode_chunked=encode_chunked) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 09:46:29 self.send(msg) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 09:46:29 self.connect() 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 09:46:29 self.sock = self._new_conn() 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 except socket.gaierror as e: 09:46:29 raise NameResolutionError(self.host, self, e) from e 09:46:29 except SocketTimeout as e: 09:46:29 raise ConnectTimeoutError( 09:46:29 self, 09:46:29 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 09:46:29 ) from e 09:46:29 09:46:29 except OSError as e: 09:46:29 > raise NewConnectionError( 09:46:29 self, f"Failed to establish a new connection: {e}" 09:46:29 ) from e 09:46:29 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 > resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 09:46:29 retries = retries.increment( 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 method = 'POST' 09:46:29 url = '/rests/operations/transportpce-networkutils:init-rdm-xpdr-links' 09:46:29 response = None 09:46:29 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 09:46:29 _pool = 09:46:29 _stacktrace = 09:46:29 09:46:29 def increment( 09:46:29 self, 09:46:29 method: str | None = None, 09:46:29 url: str | None = None, 09:46:29 response: BaseHTTPResponse | None = None, 09:46:29 error: Exception | None = None, 09:46:29 _pool: ConnectionPool | None = None, 09:46:29 _stacktrace: TracebackType | None = None, 09:46:29 ) -> Self: 09:46:29 """Return a new Retry object with incremented retry counters. 09:46:29 09:46:29 :param response: A response object, or None, if the server did not 09:46:29 return a response. 09:46:29 :type response: :class:`~urllib3.response.BaseHTTPResponse` 09:46:29 :param Exception error: An error encountered during the request, or 09:46:29 None if the response was received successfully. 09:46:29 09:46:29 :return: A new ``Retry`` object. 09:46:29 """ 09:46:29 if self.total is False and error: 09:46:29 # Disabled, indicate to re-raise the error. 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 09:46:29 total = self.total 09:46:29 if total is not None: 09:46:29 total -= 1 09:46:29 09:46:29 connect = self.connect 09:46:29 read = self.read 09:46:29 redirect = self.redirect 09:46:29 status_count = self.status 09:46:29 other = self.other 09:46:29 cause = "unknown" 09:46:29 status = None 09:46:29 redirect_location = None 09:46:29 09:46:29 if error and self._is_connection_error(error): 09:46:29 # Connect retry? 09:46:29 if connect is False: 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif connect is not None: 09:46:29 connect -= 1 09:46:29 09:46:29 elif error and self._is_read_error(error): 09:46:29 # Read retry? 09:46:29 if read is False or method is None or not self._is_method_retryable(method): 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif read is not None: 09:46:29 read -= 1 09:46:29 09:46:29 elif error: 09:46:29 # Other retry? 09:46:29 if other is not None: 09:46:29 other -= 1 09:46:29 09:46:29 elif response and response.get_redirect_location(): 09:46:29 # Redirect retry? 09:46:29 if redirect is not None: 09:46:29 redirect -= 1 09:46:29 cause = "too many redirects" 09:46:29 response_redirect_location = response.get_redirect_location() 09:46:29 if response_redirect_location: 09:46:29 redirect_location = response_redirect_location 09:46:29 status = response.status 09:46:29 09:46:29 else: 09:46:29 # Incrementing because of a server error like a 500 in 09:46:29 # status_forcelist and the given method is in the allowed_methods 09:46:29 cause = ResponseError.GENERIC_ERROR 09:46:29 if response and response.status: 09:46:29 if status_count is not None: 09:46:29 status_count -= 1 09:46:29 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 09:46:29 status = response.status 09:46:29 09:46:29 history = self.history + ( 09:46:29 RequestHistory(method, url, error, status, redirect_location), 09:46:29 ) 09:46:29 09:46:29 new_retry = self.new( 09:46:29 total=total, 09:46:29 connect=connect, 09:46:29 read=read, 09:46:29 redirect=redirect, 09:46:29 status=status_count, 09:46:29 other=other, 09:46:29 history=history, 09:46:29 ) 09:46:29 09:46:29 if new_retry.is_exhausted(): 09:46:29 reason = error or ResponseError(cause) 09:46:29 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 09:46:29 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/operations/transportpce-networkutils:init-rdm-xpdr-links (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 09:46:29 09:46:29 During handling of the above exception, another exception occurred: 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_06_connect_roadmA_to_xpdrA(self): 09:46:29 > response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-networkutils', 'init-rdm-xpdr-links', 09:46:29 {'links-input': {'xpdr-node': 'XPDRA01', 'xpdr-num': '1', 'network-num': '1', 09:46:29 'rdm-node': 'ROADMA01', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:75: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 transportpce_tests/common/test_utils.py:684: in transportpce_api_rpc_request 09:46:29 response = post_request(url, data) 09:46:29 transportpce_tests/common/test_utils.py:142: in post_request 09:46:29 return requests.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 09:46:29 return session.request(method=method, url=url, **kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 09:46:29 resp = self.send(prep, **send_kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 09:46:29 r = adapter.send(request, **kwargs) 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 except (ProtocolError, OSError) as err: 09:46:29 raise ConnectionError(err, request=request) 09:46:29 09:46:29 except MaxRetryError as e: 09:46:29 if isinstance(e.reason, ConnectTimeoutError): 09:46:29 # TODO: Remove this in 3.0.0: see #2811 09:46:29 if not isinstance(e.reason, NewConnectionError): 09:46:29 raise ConnectTimeout(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, ResponseError): 09:46:29 raise RetryError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _ProxyError): 09:46:29 raise ProxyError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _SSLError): 09:46:29 # This branch is for urllib3 v1.22 and later. 09:46:29 raise SSLError(e, request=request) 09:46:29 09:46:29 > raise ConnectionError(e, request=request) 09:46:29 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/operations/transportpce-networkutils:init-rdm-xpdr-links (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_06_connect_roadmA_to_xpdrA 09:46:29 _____________ TransportOlmTesting.test_07_connect_xpdrC_to_roadmC ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 > sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 09:46:29 raise err 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 address = ('localhost', 8182), timeout = 10, source_address = None 09:46:29 socket_options = [(6, 1, 1)] 09:46:29 09:46:29 def create_connection( 09:46:29 address: tuple[str, int], 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 source_address: tuple[str, int] | None = None, 09:46:29 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 09:46:29 ) -> socket.socket: 09:46:29 """Connect to *address* and return the socket object. 09:46:29 09:46:29 Convenience function. Connect to *address* (a 2-tuple ``(host, 09:46:29 port)``) and return the socket object. Passing the optional 09:46:29 *timeout* parameter will set the timeout on the socket instance 09:46:29 before attempting to connect. If no *timeout* is supplied, the 09:46:29 global default timeout setting returned by :func:`socket.getdefaulttimeout` 09:46:29 is used. If *source_address* is set it must be a tuple of (host, port) 09:46:29 for the socket to bind as a source address before making the connection. 09:46:29 An host of '' or port 0 tells the OS to use the default. 09:46:29 """ 09:46:29 09:46:29 host, port = address 09:46:29 if host.startswith("["): 09:46:29 host = host.strip("[]") 09:46:29 err = None 09:46:29 09:46:29 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 09:46:29 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 09:46:29 # The original create_connection function always returns all records. 09:46:29 family = allowed_gai_family() 09:46:29 09:46:29 try: 09:46:29 host.encode("idna") 09:46:29 except UnicodeError: 09:46:29 raise LocationParseError(f"'{host}', label empty or too long") from None 09:46:29 09:46:29 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 09:46:29 af, socktype, proto, canonname, sa = res 09:46:29 sock = None 09:46:29 try: 09:46:29 sock = socket.socket(af, socktype, proto) 09:46:29 09:46:29 # If provided, set socket level options before connecting. 09:46:29 _set_socket_options(sock, socket_options) 09:46:29 09:46:29 if timeout is not _DEFAULT_TIMEOUT: 09:46:29 sock.settimeout(timeout) 09:46:29 if source_address: 09:46:29 sock.bind(source_address) 09:46:29 > sock.connect(sa) 09:46:29 E ConnectionRefusedError: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 method = 'POST' 09:46:29 url = '/rests/operations/transportpce-networkutils:init-xpdr-rdm-links' 09:46:29 body = '{"input": {"links-input": {"xpdr-node": "XPDRC01", "xpdr-num": "1", "network-num": "1", "rdm-node": "ROADMC01", "srg-num": "1", "termination-point-num": "SRG1-PP1-TXRX"}}}' 09:46:29 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '171', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 09:46:29 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 redirect = False, assert_same_host = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 09:46:29 release_conn = False, chunked = False, body_pos = None, preload_content = False 09:46:29 decode_content = False, response_kw = {} 09:46:29 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/operations/transportpce-networkutils:init-xpdr-rdm-links', query=None, fragment=None) 09:46:29 destination_scheme = None, conn = None, release_this_conn = True 09:46:29 http_tunnel_required = False, err = None, clean_exit = False 09:46:29 09:46:29 def urlopen( # type: ignore[override] 09:46:29 self, 09:46:29 method: str, 09:46:29 url: str, 09:46:29 body: _TYPE_BODY | None = None, 09:46:29 headers: typing.Mapping[str, str] | None = None, 09:46:29 retries: Retry | bool | int | None = None, 09:46:29 redirect: bool = True, 09:46:29 assert_same_host: bool = True, 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 pool_timeout: int | None = None, 09:46:29 release_conn: bool | None = None, 09:46:29 chunked: bool = False, 09:46:29 body_pos: _TYPE_BODY_POSITION | None = None, 09:46:29 preload_content: bool = True, 09:46:29 decode_content: bool = True, 09:46:29 **response_kw: typing.Any, 09:46:29 ) -> BaseHTTPResponse: 09:46:29 """ 09:46:29 Get a connection from the pool and perform an HTTP request. This is the 09:46:29 lowest level call for making a request, so you'll need to specify all 09:46:29 the raw details. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 More commonly, it's appropriate to use a convenience method 09:46:29 such as :meth:`request`. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 `release_conn` will only behave as expected if 09:46:29 `preload_content=False` because we want to make 09:46:29 `preload_content=False` the default behaviour someday soon without 09:46:29 breaking backwards compatibility. 09:46:29 09:46:29 :param method: 09:46:29 HTTP request method (such as GET, POST, PUT, etc.) 09:46:29 09:46:29 :param url: 09:46:29 The URL to perform the request on. 09:46:29 09:46:29 :param body: 09:46:29 Data to send in the request body, either :class:`str`, :class:`bytes`, 09:46:29 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 09:46:29 09:46:29 :param headers: 09:46:29 Dictionary of custom headers to send, such as User-Agent, 09:46:29 If-None-Match, etc. If None, pool headers are used. If provided, 09:46:29 these headers completely replace any pool-specific headers. 09:46:29 09:46:29 :param retries: 09:46:29 Configure the number of retries to allow before raising a 09:46:29 :class:`~urllib3.exceptions.MaxRetryError` exception. 09:46:29 09:46:29 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 09:46:29 :class:`~urllib3.util.retry.Retry` object for fine-grained control 09:46:29 over different types of retries. 09:46:29 Pass an integer number to retry connection errors that many times, 09:46:29 but no other types of errors. Pass zero to never retry. 09:46:29 09:46:29 If ``False``, then retries are disabled and any exception is raised 09:46:29 immediately. Also, instead of raising a MaxRetryError on redirects, 09:46:29 the redirect response will be returned. 09:46:29 09:46:29 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 09:46:29 09:46:29 :param redirect: 09:46:29 If True, automatically handle redirects (status codes 301, 302, 09:46:29 303, 307, 308). Each redirect counts as a retry. Disabling retries 09:46:29 will disable redirect, too. 09:46:29 09:46:29 :param assert_same_host: 09:46:29 If ``True``, will make sure that the host of the pool requests is 09:46:29 consistent else will raise HostChangedError. When ``False``, you can 09:46:29 use the pool on an HTTP proxy and request foreign hosts. 09:46:29 09:46:29 :param timeout: 09:46:29 If specified, overrides the default timeout for this one 09:46:29 request. It may be a float (in seconds) or an instance of 09:46:29 :class:`urllib3.util.Timeout`. 09:46:29 09:46:29 :param pool_timeout: 09:46:29 If set and the pool is set to block=True, then this method will 09:46:29 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 09:46:29 connection is available within the time period. 09:46:29 09:46:29 :param bool preload_content: 09:46:29 If True, the response's body will be preloaded into memory. 09:46:29 09:46:29 :param bool decode_content: 09:46:29 If True, will attempt to decode the body based on the 09:46:29 'content-encoding' header. 09:46:29 09:46:29 :param release_conn: 09:46:29 If False, then the urlopen call will not release the connection 09:46:29 back into the pool once a response is received (but will release if 09:46:29 you read the entire contents of the response such as when 09:46:29 `preload_content=True`). This is useful if you're not preloading 09:46:29 the response's content immediately. You will need to call 09:46:29 ``r.release_conn()`` on the response ``r`` to return the connection 09:46:29 back into the pool. If None, it takes the value of ``preload_content`` 09:46:29 which defaults to ``True``. 09:46:29 09:46:29 :param bool chunked: 09:46:29 If True, urllib3 will send the body using chunked transfer 09:46:29 encoding. Otherwise, urllib3 will send the body using the standard 09:46:29 content-length form. Defaults to False. 09:46:29 09:46:29 :param int body_pos: 09:46:29 Position to seek to in file-like body in the event of a retry or 09:46:29 redirect. Typically this won't need to be set because urllib3 will 09:46:29 auto-populate the value when needed. 09:46:29 """ 09:46:29 parsed_url = parse_url(url) 09:46:29 destination_scheme = parsed_url.scheme 09:46:29 09:46:29 if headers is None: 09:46:29 headers = self.headers 09:46:29 09:46:29 if not isinstance(retries, Retry): 09:46:29 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 09:46:29 09:46:29 if release_conn is None: 09:46:29 release_conn = preload_content 09:46:29 09:46:29 # Check host 09:46:29 if assert_same_host and not self.is_same_host(url): 09:46:29 raise HostChangedError(self, url, retries) 09:46:29 09:46:29 # Ensure that the URL we're connecting to is properly encoded 09:46:29 if url.startswith("/"): 09:46:29 url = to_str(_encode_target(url)) 09:46:29 else: 09:46:29 url = to_str(parsed_url.url) 09:46:29 09:46:29 conn = None 09:46:29 09:46:29 # Track whether `conn` needs to be released before 09:46:29 # returning/raising/recursing. Update this variable if necessary, and 09:46:29 # leave `release_conn` constant throughout the function. That way, if 09:46:29 # the function recurses, the original value of `release_conn` will be 09:46:29 # passed down into the recursive call, and its value will be respected. 09:46:29 # 09:46:29 # See issue #651 [1] for details. 09:46:29 # 09:46:29 # [1] 09:46:29 release_this_conn = release_conn 09:46:29 09:46:29 http_tunnel_required = connection_requires_http_tunnel( 09:46:29 self.proxy, self.proxy_config, destination_scheme 09:46:29 ) 09:46:29 09:46:29 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 09:46:29 # have to copy the headers dict so we can safely change it without those 09:46:29 # changes being reflected in anyone else's copy. 09:46:29 if not http_tunnel_required: 09:46:29 headers = headers.copy() # type: ignore[attr-defined] 09:46:29 headers.update(self.proxy_headers) # type: ignore[union-attr] 09:46:29 09:46:29 # Must keep the exception bound to a separate variable or else Python 3 09:46:29 # complains about UnboundLocalError. 09:46:29 err = None 09:46:29 09:46:29 # Keep track of whether we cleanly exited the except block. This 09:46:29 # ensures we do proper cleanup in finally. 09:46:29 clean_exit = False 09:46:29 09:46:29 # Rewind body position, if needed. Record current position 09:46:29 # for future rewinds in the event of a redirect/retry. 09:46:29 body_pos = set_file_position(body, body_pos) 09:46:29 09:46:29 try: 09:46:29 # Request a connection from the queue. 09:46:29 timeout_obj = self._get_timeout(timeout) 09:46:29 conn = self._get_conn(timeout=pool_timeout) 09:46:29 09:46:29 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 09:46:29 09:46:29 # Is this a closed/new connection that requires CONNECT tunnelling? 09:46:29 if self.proxy is not None and http_tunnel_required and conn.is_closed: 09:46:29 try: 09:46:29 self._prepare_proxy(conn) 09:46:29 except (BaseSSLError, OSError, SocketTimeout) as e: 09:46:29 self._raise_timeout( 09:46:29 err=e, url=self.proxy.url, timeout_value=conn.timeout 09:46:29 ) 09:46:29 raise 09:46:29 09:46:29 # If we're going to release the connection in ``finally:``, then 09:46:29 # the response doesn't need to know about the connection. Otherwise 09:46:29 # it will also try to release it and we'll have a double-release 09:46:29 # mess. 09:46:29 response_conn = conn if not release_conn else None 09:46:29 09:46:29 # Make the request on the HTTPConnection object 09:46:29 > response = self._make_request( 09:46:29 conn, 09:46:29 method, 09:46:29 url, 09:46:29 timeout=timeout_obj, 09:46:29 body=body, 09:46:29 headers=headers, 09:46:29 chunked=chunked, 09:46:29 retries=retries, 09:46:29 response_conn=response_conn, 09:46:29 preload_content=preload_content, 09:46:29 decode_content=decode_content, 09:46:29 **response_kw, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 09:46:29 conn.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 09:46:29 self.endheaders() 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 09:46:29 self._send_output(message_body, encode_chunked=encode_chunked) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 09:46:29 self.send(msg) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 09:46:29 self.connect() 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 09:46:29 self.sock = self._new_conn() 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 except socket.gaierror as e: 09:46:29 raise NameResolutionError(self.host, self, e) from e 09:46:29 except SocketTimeout as e: 09:46:29 raise ConnectTimeoutError( 09:46:29 self, 09:46:29 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 09:46:29 ) from e 09:46:29 09:46:29 except OSError as e: 09:46:29 > raise NewConnectionError( 09:46:29 self, f"Failed to establish a new connection: {e}" 09:46:29 ) from e 09:46:29 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 > resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 09:46:29 retries = retries.increment( 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 method = 'POST' 09:46:29 url = '/rests/operations/transportpce-networkutils:init-xpdr-rdm-links' 09:46:29 response = None 09:46:29 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 09:46:29 _pool = 09:46:29 _stacktrace = 09:46:29 09:46:29 def increment( 09:46:29 self, 09:46:29 method: str | None = None, 09:46:29 url: str | None = None, 09:46:29 response: BaseHTTPResponse | None = None, 09:46:29 error: Exception | None = None, 09:46:29 _pool: ConnectionPool | None = None, 09:46:29 _stacktrace: TracebackType | None = None, 09:46:29 ) -> Self: 09:46:29 """Return a new Retry object with incremented retry counters. 09:46:29 09:46:29 :param response: A response object, or None, if the server did not 09:46:29 return a response. 09:46:29 :type response: :class:`~urllib3.response.BaseHTTPResponse` 09:46:29 :param Exception error: An error encountered during the request, or 09:46:29 None if the response was received successfully. 09:46:29 09:46:29 :return: A new ``Retry`` object. 09:46:29 """ 09:46:29 if self.total is False and error: 09:46:29 # Disabled, indicate to re-raise the error. 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 09:46:29 total = self.total 09:46:29 if total is not None: 09:46:29 total -= 1 09:46:29 09:46:29 connect = self.connect 09:46:29 read = self.read 09:46:29 redirect = self.redirect 09:46:29 status_count = self.status 09:46:29 other = self.other 09:46:29 cause = "unknown" 09:46:29 status = None 09:46:29 redirect_location = None 09:46:29 09:46:29 if error and self._is_connection_error(error): 09:46:29 # Connect retry? 09:46:29 if connect is False: 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif connect is not None: 09:46:29 connect -= 1 09:46:29 09:46:29 elif error and self._is_read_error(error): 09:46:29 # Read retry? 09:46:29 if read is False or method is None or not self._is_method_retryable(method): 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif read is not None: 09:46:29 read -= 1 09:46:29 09:46:29 elif error: 09:46:29 # Other retry? 09:46:29 if other is not None: 09:46:29 other -= 1 09:46:29 09:46:29 elif response and response.get_redirect_location(): 09:46:29 # Redirect retry? 09:46:29 if redirect is not None: 09:46:29 redirect -= 1 09:46:29 cause = "too many redirects" 09:46:29 response_redirect_location = response.get_redirect_location() 09:46:29 if response_redirect_location: 09:46:29 redirect_location = response_redirect_location 09:46:29 status = response.status 09:46:29 09:46:29 else: 09:46:29 # Incrementing because of a server error like a 500 in 09:46:29 # status_forcelist and the given method is in the allowed_methods 09:46:29 cause = ResponseError.GENERIC_ERROR 09:46:29 if response and response.status: 09:46:29 if status_count is not None: 09:46:29 status_count -= 1 09:46:29 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 09:46:29 status = response.status 09:46:29 09:46:29 history = self.history + ( 09:46:29 RequestHistory(method, url, error, status, redirect_location), 09:46:29 ) 09:46:29 09:46:29 new_retry = self.new( 09:46:29 total=total, 09:46:29 connect=connect, 09:46:29 read=read, 09:46:29 redirect=redirect, 09:46:29 status=status_count, 09:46:29 other=other, 09:46:29 history=history, 09:46:29 ) 09:46:29 09:46:29 if new_retry.is_exhausted(): 09:46:29 reason = error or ResponseError(cause) 09:46:29 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 09:46:29 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/operations/transportpce-networkutils:init-xpdr-rdm-links (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 09:46:29 09:46:29 During handling of the above exception, another exception occurred: 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_07_connect_xpdrC_to_roadmC(self): 09:46:29 > response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-networkutils', 'init-xpdr-rdm-links', 09:46:29 {'links-input': {'xpdr-node': 'XPDRC01', 'xpdr-num': '1', 'network-num': '1', 09:46:29 'rdm-node': 'ROADMC01', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:82: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 transportpce_tests/common/test_utils.py:684: in transportpce_api_rpc_request 09:46:29 response = post_request(url, data) 09:46:29 transportpce_tests/common/test_utils.py:142: in post_request 09:46:29 return requests.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 09:46:29 return session.request(method=method, url=url, **kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 09:46:29 resp = self.send(prep, **send_kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 09:46:29 r = adapter.send(request, **kwargs) 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 except (ProtocolError, OSError) as err: 09:46:29 raise ConnectionError(err, request=request) 09:46:29 09:46:29 except MaxRetryError as e: 09:46:29 if isinstance(e.reason, ConnectTimeoutError): 09:46:29 # TODO: Remove this in 3.0.0: see #2811 09:46:29 if not isinstance(e.reason, NewConnectionError): 09:46:29 raise ConnectTimeout(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, ResponseError): 09:46:29 raise RetryError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _ProxyError): 09:46:29 raise ProxyError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _SSLError): 09:46:29 # This branch is for urllib3 v1.22 and later. 09:46:29 raise SSLError(e, request=request) 09:46:29 09:46:29 > raise ConnectionError(e, request=request) 09:46:29 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/operations/transportpce-networkutils:init-xpdr-rdm-links (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_07_connect_xpdrC_to_roadmC 09:46:29 _____________ TransportOlmTesting.test_08_connect_roadmC_to_xpdrC ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 > sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 09:46:29 raise err 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 address = ('localhost', 8182), timeout = 10, source_address = None 09:46:29 socket_options = [(6, 1, 1)] 09:46:29 09:46:29 def create_connection( 09:46:29 address: tuple[str, int], 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 source_address: tuple[str, int] | None = None, 09:46:29 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 09:46:29 ) -> socket.socket: 09:46:29 """Connect to *address* and return the socket object. 09:46:29 09:46:29 Convenience function. Connect to *address* (a 2-tuple ``(host, 09:46:29 port)``) and return the socket object. Passing the optional 09:46:29 *timeout* parameter will set the timeout on the socket instance 09:46:29 before attempting to connect. If no *timeout* is supplied, the 09:46:29 global default timeout setting returned by :func:`socket.getdefaulttimeout` 09:46:29 is used. If *source_address* is set it must be a tuple of (host, port) 09:46:29 for the socket to bind as a source address before making the connection. 09:46:29 An host of '' or port 0 tells the OS to use the default. 09:46:29 """ 09:46:29 09:46:29 host, port = address 09:46:29 if host.startswith("["): 09:46:29 host = host.strip("[]") 09:46:29 err = None 09:46:29 09:46:29 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 09:46:29 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 09:46:29 # The original create_connection function always returns all records. 09:46:29 family = allowed_gai_family() 09:46:29 09:46:29 try: 09:46:29 host.encode("idna") 09:46:29 except UnicodeError: 09:46:29 raise LocationParseError(f"'{host}', label empty or too long") from None 09:46:29 09:46:29 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 09:46:29 af, socktype, proto, canonname, sa = res 09:46:29 sock = None 09:46:29 try: 09:46:29 sock = socket.socket(af, socktype, proto) 09:46:29 09:46:29 # If provided, set socket level options before connecting. 09:46:29 _set_socket_options(sock, socket_options) 09:46:29 09:46:29 if timeout is not _DEFAULT_TIMEOUT: 09:46:29 sock.settimeout(timeout) 09:46:29 if source_address: 09:46:29 sock.bind(source_address) 09:46:29 > sock.connect(sa) 09:46:29 E ConnectionRefusedError: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 method = 'POST' 09:46:29 url = '/rests/operations/transportpce-networkutils:init-rdm-xpdr-links' 09:46:29 body = '{"input": {"links-input": {"xpdr-node": "XPDRC01", "xpdr-num": "1", "network-num": "1", "rdm-node": "ROADMC01", "srg-num": "1", "termination-point-num": "SRG1-PP1-TXRX"}}}' 09:46:29 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '171', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 09:46:29 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 redirect = False, assert_same_host = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 09:46:29 release_conn = False, chunked = False, body_pos = None, preload_content = False 09:46:29 decode_content = False, response_kw = {} 09:46:29 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/operations/transportpce-networkutils:init-rdm-xpdr-links', query=None, fragment=None) 09:46:29 destination_scheme = None, conn = None, release_this_conn = True 09:46:29 http_tunnel_required = False, err = None, clean_exit = False 09:46:29 09:46:29 def urlopen( # type: ignore[override] 09:46:29 self, 09:46:29 method: str, 09:46:29 url: str, 09:46:29 body: _TYPE_BODY | None = None, 09:46:29 headers: typing.Mapping[str, str] | None = None, 09:46:29 retries: Retry | bool | int | None = None, 09:46:29 redirect: bool = True, 09:46:29 assert_same_host: bool = True, 09:46:29 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 09:46:29 pool_timeout: int | None = None, 09:46:29 release_conn: bool | None = None, 09:46:29 chunked: bool = False, 09:46:29 body_pos: _TYPE_BODY_POSITION | None = None, 09:46:29 preload_content: bool = True, 09:46:29 decode_content: bool = True, 09:46:29 **response_kw: typing.Any, 09:46:29 ) -> BaseHTTPResponse: 09:46:29 """ 09:46:29 Get a connection from the pool and perform an HTTP request. This is the 09:46:29 lowest level call for making a request, so you'll need to specify all 09:46:29 the raw details. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 More commonly, it's appropriate to use a convenience method 09:46:29 such as :meth:`request`. 09:46:29 09:46:29 .. note:: 09:46:29 09:46:29 `release_conn` will only behave as expected if 09:46:29 `preload_content=False` because we want to make 09:46:29 `preload_content=False` the default behaviour someday soon without 09:46:29 breaking backwards compatibility. 09:46:29 09:46:29 :param method: 09:46:29 HTTP request method (such as GET, POST, PUT, etc.) 09:46:29 09:46:29 :param url: 09:46:29 The URL to perform the request on. 09:46:29 09:46:29 :param body: 09:46:29 Data to send in the request body, either :class:`str`, :class:`bytes`, 09:46:29 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 09:46:29 09:46:29 :param headers: 09:46:29 Dictionary of custom headers to send, such as User-Agent, 09:46:29 If-None-Match, etc. If None, pool headers are used. If provided, 09:46:29 these headers completely replace any pool-specific headers. 09:46:29 09:46:29 :param retries: 09:46:29 Configure the number of retries to allow before raising a 09:46:29 :class:`~urllib3.exceptions.MaxRetryError` exception. 09:46:29 09:46:29 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 09:46:29 :class:`~urllib3.util.retry.Retry` object for fine-grained control 09:46:29 over different types of retries. 09:46:29 Pass an integer number to retry connection errors that many times, 09:46:29 but no other types of errors. Pass zero to never retry. 09:46:29 09:46:29 If ``False``, then retries are disabled and any exception is raised 09:46:29 immediately. Also, instead of raising a MaxRetryError on redirects, 09:46:29 the redirect response will be returned. 09:46:29 09:46:29 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 09:46:29 09:46:29 :param redirect: 09:46:29 If True, automatically handle redirects (status codes 301, 302, 09:46:29 303, 307, 308). Each redirect counts as a retry. Disabling retries 09:46:29 will disable redirect, too. 09:46:29 09:46:29 :param assert_same_host: 09:46:29 If ``True``, will make sure that the host of the pool requests is 09:46:29 consistent else will raise HostChangedError. When ``False``, you can 09:46:29 use the pool on an HTTP proxy and request foreign hosts. 09:46:29 09:46:29 :param timeout: 09:46:29 If specified, overrides the default timeout for this one 09:46:29 request. It may be a float (in seconds) or an instance of 09:46:29 :class:`urllib3.util.Timeout`. 09:46:29 09:46:29 :param pool_timeout: 09:46:29 If set and the pool is set to block=True, then this method will 09:46:29 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 09:46:29 connection is available within the time period. 09:46:29 09:46:29 :param bool preload_content: 09:46:29 If True, the response's body will be preloaded into memory. 09:46:29 09:46:29 :param bool decode_content: 09:46:29 If True, will attempt to decode the body based on the 09:46:29 'content-encoding' header. 09:46:29 09:46:29 :param release_conn: 09:46:29 If False, then the urlopen call will not release the connection 09:46:29 back into the pool once a response is received (but will release if 09:46:29 you read the entire contents of the response such as when 09:46:29 `preload_content=True`). This is useful if you're not preloading 09:46:29 the response's content immediately. You will need to call 09:46:29 ``r.release_conn()`` on the response ``r`` to return the connection 09:46:29 back into the pool. If None, it takes the value of ``preload_content`` 09:46:29 which defaults to ``True``. 09:46:29 09:46:29 :param bool chunked: 09:46:29 If True, urllib3 will send the body using chunked transfer 09:46:29 encoding. Otherwise, urllib3 will send the body using the standard 09:46:29 content-length form. Defaults to False. 09:46:29 09:46:29 :param int body_pos: 09:46:29 Position to seek to in file-like body in the event of a retry or 09:46:29 redirect. Typically this won't need to be set because urllib3 will 09:46:29 auto-populate the value when needed. 09:46:29 """ 09:46:29 parsed_url = parse_url(url) 09:46:29 destination_scheme = parsed_url.scheme 09:46:29 09:46:29 if headers is None: 09:46:29 headers = self.headers 09:46:29 09:46:29 if not isinstance(retries, Retry): 09:46:29 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 09:46:29 09:46:29 if release_conn is None: 09:46:29 release_conn = preload_content 09:46:29 09:46:29 # Check host 09:46:29 if assert_same_host and not self.is_same_host(url): 09:46:29 raise HostChangedError(self, url, retries) 09:46:29 09:46:29 # Ensure that the URL we're connecting to is properly encoded 09:46:29 if url.startswith("/"): 09:46:29 url = to_str(_encode_target(url)) 09:46:29 else: 09:46:29 url = to_str(parsed_url.url) 09:46:29 09:46:29 conn = None 09:46:29 09:46:29 # Track whether `conn` needs to be released before 09:46:29 # returning/raising/recursing. Update this variable if necessary, and 09:46:29 # leave `release_conn` constant throughout the function. That way, if 09:46:29 # the function recurses, the original value of `release_conn` will be 09:46:29 # passed down into the recursive call, and its value will be respected. 09:46:29 # 09:46:29 # See issue #651 [1] for details. 09:46:29 # 09:46:29 # [1] 09:46:29 release_this_conn = release_conn 09:46:29 09:46:29 http_tunnel_required = connection_requires_http_tunnel( 09:46:29 self.proxy, self.proxy_config, destination_scheme 09:46:29 ) 09:46:29 09:46:29 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 09:46:29 # have to copy the headers dict so we can safely change it without those 09:46:29 # changes being reflected in anyone else's copy. 09:46:29 if not http_tunnel_required: 09:46:29 headers = headers.copy() # type: ignore[attr-defined] 09:46:29 headers.update(self.proxy_headers) # type: ignore[union-attr] 09:46:29 09:46:29 # Must keep the exception bound to a separate variable or else Python 3 09:46:29 # complains about UnboundLocalError. 09:46:29 err = None 09:46:29 09:46:29 # Keep track of whether we cleanly exited the except block. This 09:46:29 # ensures we do proper cleanup in finally. 09:46:29 clean_exit = False 09:46:29 09:46:29 # Rewind body position, if needed. Record current position 09:46:29 # for future rewinds in the event of a redirect/retry. 09:46:29 body_pos = set_file_position(body, body_pos) 09:46:29 09:46:29 try: 09:46:29 # Request a connection from the queue. 09:46:29 timeout_obj = self._get_timeout(timeout) 09:46:29 conn = self._get_conn(timeout=pool_timeout) 09:46:29 09:46:29 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 09:46:29 09:46:29 # Is this a closed/new connection that requires CONNECT tunnelling? 09:46:29 if self.proxy is not None and http_tunnel_required and conn.is_closed: 09:46:29 try: 09:46:29 self._prepare_proxy(conn) 09:46:29 except (BaseSSLError, OSError, SocketTimeout) as e: 09:46:29 self._raise_timeout( 09:46:29 err=e, url=self.proxy.url, timeout_value=conn.timeout 09:46:29 ) 09:46:29 raise 09:46:29 09:46:29 # If we're going to release the connection in ``finally:``, then 09:46:29 # the response doesn't need to know about the connection. Otherwise 09:46:29 # it will also try to release it and we'll have a double-release 09:46:29 # mess. 09:46:29 response_conn = conn if not release_conn else None 09:46:29 09:46:29 # Make the request on the HTTPConnection object 09:46:29 > response = self._make_request( 09:46:29 conn, 09:46:29 method, 09:46:29 url, 09:46:29 timeout=timeout_obj, 09:46:29 body=body, 09:46:29 headers=headers, 09:46:29 chunked=chunked, 09:46:29 retries=retries, 09:46:29 response_conn=response_conn, 09:46:29 preload_content=preload_content, 09:46:29 decode_content=decode_content, 09:46:29 **response_kw, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 09:46:29 conn.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 09:46:29 self.endheaders() 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 09:46:29 self._send_output(message_body, encode_chunked=encode_chunked) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 09:46:29 self.send(msg) 09:46:29 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 09:46:29 self.connect() 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 09:46:29 self.sock = self._new_conn() 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def _new_conn(self) -> socket.socket: 09:46:29 """Establish a socket connection and set nodelay settings on it. 09:46:29 09:46:29 :return: New socket connection. 09:46:29 """ 09:46:29 try: 09:46:29 sock = connection.create_connection( 09:46:29 (self._dns_host, self.port), 09:46:29 self.timeout, 09:46:29 source_address=self.source_address, 09:46:29 socket_options=self.socket_options, 09:46:29 ) 09:46:29 except socket.gaierror as e: 09:46:29 raise NameResolutionError(self.host, self, e) from e 09:46:29 except SocketTimeout as e: 09:46:29 raise ConnectTimeoutError( 09:46:29 self, 09:46:29 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 09:46:29 ) from e 09:46:29 09:46:29 except OSError as e: 09:46:29 > raise NewConnectionError( 09:46:29 self, f"Failed to establish a new connection: {e}" 09:46:29 ) from e 09:46:29 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 09:46:29 09:46:29 The above exception was the direct cause of the following exception: 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 > resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 09:46:29 retries = retries.increment( 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 09:46:29 method = 'POST' 09:46:29 url = '/rests/operations/transportpce-networkutils:init-rdm-xpdr-links' 09:46:29 response = None 09:46:29 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 09:46:29 _pool = 09:46:29 _stacktrace = 09:46:29 09:46:29 def increment( 09:46:29 self, 09:46:29 method: str | None = None, 09:46:29 url: str | None = None, 09:46:29 response: BaseHTTPResponse | None = None, 09:46:29 error: Exception | None = None, 09:46:29 _pool: ConnectionPool | None = None, 09:46:29 _stacktrace: TracebackType | None = None, 09:46:29 ) -> Self: 09:46:29 """Return a new Retry object with incremented retry counters. 09:46:29 09:46:29 :param response: A response object, or None, if the server did not 09:46:29 return a response. 09:46:29 :type response: :class:`~urllib3.response.BaseHTTPResponse` 09:46:29 :param Exception error: An error encountered during the request, or 09:46:29 None if the response was received successfully. 09:46:29 09:46:29 :return: A new ``Retry`` object. 09:46:29 """ 09:46:29 if self.total is False and error: 09:46:29 # Disabled, indicate to re-raise the error. 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 09:46:29 total = self.total 09:46:29 if total is not None: 09:46:29 total -= 1 09:46:29 09:46:29 connect = self.connect 09:46:29 read = self.read 09:46:29 redirect = self.redirect 09:46:29 status_count = self.status 09:46:29 other = self.other 09:46:29 cause = "unknown" 09:46:29 status = None 09:46:29 redirect_location = None 09:46:29 09:46:29 if error and self._is_connection_error(error): 09:46:29 # Connect retry? 09:46:29 if connect is False: 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif connect is not None: 09:46:29 connect -= 1 09:46:29 09:46:29 elif error and self._is_read_error(error): 09:46:29 # Read retry? 09:46:29 if read is False or method is None or not self._is_method_retryable(method): 09:46:29 raise reraise(type(error), error, _stacktrace) 09:46:29 elif read is not None: 09:46:29 read -= 1 09:46:29 09:46:29 elif error: 09:46:29 # Other retry? 09:46:29 if other is not None: 09:46:29 other -= 1 09:46:29 09:46:29 elif response and response.get_redirect_location(): 09:46:29 # Redirect retry? 09:46:29 if redirect is not None: 09:46:29 redirect -= 1 09:46:29 cause = "too many redirects" 09:46:29 response_redirect_location = response.get_redirect_location() 09:46:29 if response_redirect_location: 09:46:29 redirect_location = response_redirect_location 09:46:29 status = response.status 09:46:29 09:46:29 else: 09:46:29 # Incrementing because of a server error like a 500 in 09:46:29 # status_forcelist and the given method is in the allowed_methods 09:46:29 cause = ResponseError.GENERIC_ERROR 09:46:29 if response and response.status: 09:46:29 if status_count is not None: 09:46:29 status_count -= 1 09:46:29 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 09:46:29 status = response.status 09:46:29 09:46:29 history = self.history + ( 09:46:29 RequestHistory(method, url, error, status, redirect_location), 09:46:29 ) 09:46:29 09:46:29 new_retry = self.new( 09:46:29 total=total, 09:46:29 connect=connect, 09:46:29 read=read, 09:46:29 redirect=redirect, 09:46:29 status=status_count, 09:46:29 other=other, 09:46:29 history=history, 09:46:29 ) 09:46:29 09:46:29 if new_retry.is_exhausted(): 09:46:29 reason = error or ResponseError(cause) 09:46:29 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 09:46:29 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/operations/transportpce-networkutils:init-rdm-xpdr-links (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 09:46:29 09:46:29 During handling of the above exception, another exception occurred: 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_08_connect_roadmC_to_xpdrC(self): 09:46:29 > response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-networkutils', 'init-rdm-xpdr-links', 09:46:29 {'links-input': {'xpdr-node': 'XPDRC01', 'xpdr-num': '1', 'network-num': '1', 09:46:29 'rdm-node': 'ROADMC01', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:89: 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 transportpce_tests/common/test_utils.py:684: in transportpce_api_rpc_request 09:46:29 response = post_request(url, data) 09:46:29 transportpce_tests/common/test_utils.py:142: in post_request 09:46:29 return requests.request( 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 09:46:29 return session.request(method=method, url=url, **kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 09:46:29 resp = self.send(prep, **send_kwargs) 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 09:46:29 r = adapter.send(request, **kwargs) 09:46:29 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 09:46:29 09:46:29 self = 09:46:29 request = , stream = False 09:46:29 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 09:46:29 proxies = OrderedDict() 09:46:29 09:46:29 def send( 09:46:29 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 09:46:29 ): 09:46:29 """Sends PreparedRequest object. Returns Response object. 09:46:29 09:46:29 :param request: The :class:`PreparedRequest ` being sent. 09:46:29 :param stream: (optional) Whether to stream the request content. 09:46:29 :param timeout: (optional) How long to wait for the server to send 09:46:29 data before giving up, as a float, or a :ref:`(connect timeout, 09:46:29 read timeout) ` tuple. 09:46:29 :type timeout: float or tuple or urllib3 Timeout object 09:46:29 :param verify: (optional) Either a boolean, in which case it controls whether 09:46:29 we verify the server's TLS certificate, or a string, in which case it 09:46:29 must be a path to a CA bundle to use 09:46:29 :param cert: (optional) Any user-provided SSL certificate to be trusted. 09:46:29 :param proxies: (optional) The proxies dictionary to apply to the request. 09:46:29 :rtype: requests.Response 09:46:29 """ 09:46:29 09:46:29 try: 09:46:29 conn = self.get_connection_with_tls_context( 09:46:29 request, verify, proxies=proxies, cert=cert 09:46:29 ) 09:46:29 except LocationValueError as e: 09:46:29 raise InvalidURL(e, request=request) 09:46:29 09:46:29 self.cert_verify(conn, request.url, verify, cert) 09:46:29 url = self.request_url(request, proxies) 09:46:29 self.add_headers( 09:46:29 request, 09:46:29 stream=stream, 09:46:29 timeout=timeout, 09:46:29 verify=verify, 09:46:29 cert=cert, 09:46:29 proxies=proxies, 09:46:29 ) 09:46:29 09:46:29 chunked = not (request.body is None or "Content-Length" in request.headers) 09:46:29 09:46:29 if isinstance(timeout, tuple): 09:46:29 try: 09:46:29 connect, read = timeout 09:46:29 timeout = TimeoutSauce(connect=connect, read=read) 09:46:29 except ValueError: 09:46:29 raise ValueError( 09:46:29 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 09:46:29 f"or a single float to set both timeouts to the same value." 09:46:29 ) 09:46:29 elif isinstance(timeout, TimeoutSauce): 09:46:29 pass 09:46:29 else: 09:46:29 timeout = TimeoutSauce(connect=timeout, read=timeout) 09:46:29 09:46:29 try: 09:46:29 resp = conn.urlopen( 09:46:29 method=request.method, 09:46:29 url=url, 09:46:29 body=request.body, 09:46:29 headers=request.headers, 09:46:29 redirect=False, 09:46:29 assert_same_host=False, 09:46:29 preload_content=False, 09:46:29 decode_content=False, 09:46:29 retries=self.max_retries, 09:46:29 timeout=timeout, 09:46:29 chunked=chunked, 09:46:29 ) 09:46:29 09:46:29 except (ProtocolError, OSError) as err: 09:46:29 raise ConnectionError(err, request=request) 09:46:29 09:46:29 except MaxRetryError as e: 09:46:29 if isinstance(e.reason, ConnectTimeoutError): 09:46:29 # TODO: Remove this in 3.0.0: see #2811 09:46:29 if not isinstance(e.reason, NewConnectionError): 09:46:29 raise ConnectTimeout(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, ResponseError): 09:46:29 raise RetryError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _ProxyError): 09:46:29 raise ProxyError(e, request=request) 09:46:29 09:46:29 if isinstance(e.reason, _SSLError): 09:46:29 # This branch is for urllib3 v1.22 and later. 09:46:29 raise SSLError(e, request=request) 09:46:29 09:46:29 > raise ConnectionError(e, request=request) 09:46:29 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/operations/transportpce-networkutils:init-rdm-xpdr-links (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 09:46:29 09:46:29 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_08_connect_roadmC_to_xpdrC 09:46:29 __________________ TransportOlmTesting.test_11_get_PM_ROADMA ___________________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_11_get_PM_ROADMA(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-olm', 'get-pm', 09:46:29 { 09:46:29 'node-id': 'ROADMA01', 09:46:29 'resource-type': 'interface', 09:46:29 'granularity': '15min', 09:46:29 'resource-identifier': { 09:46:29 'resource-name': 'OTS-DEG1-TTP-TXRX' 09:46:29 } 09:46:29 }) 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 204 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:124: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_11_get_PM_ROADMA 09:46:29 __________________ TransportOlmTesting.test_12_get_PM_ROADMC ___________________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_12_get_PM_ROADMC(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-olm', 'get-pm', 09:46:29 { 09:46:29 'node-id': 'ROADMC01', 09:46:29 'resource-type': 'interface', 09:46:29 'granularity': '15min', 09:46:29 'resource-identifier': { 09:46:29 'resource-name': 'OTS-DEG2-TTP-TXRX' 09:46:29 } 09:46:29 }) 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 204 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:147: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_12_get_PM_ROADMC 09:46:29 ______ TransportOlmTesting.test_13_calculate_span_loss_base_ROADMA_ROADMC ______ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_13_calculate_span_loss_base_ROADMA_ROADMC(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-olm', 'calculate-spanloss-base', 09:46:29 { 09:46:29 'src-type': 'link', 09:46:29 'link-id': 'ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX' 09:46:29 }) 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 500 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:166: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_13_calculate_span_loss_base_ROADMA_ROADMC 09:46:29 ___________ TransportOlmTesting.test_14_calculate_span_loss_base_all ___________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_14_calculate_span_loss_base_all(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-olm', 'calculate-spanloss-base', 09:46:29 { 09:46:29 'src-type': 'all' 09:46:29 }) 09:46:29 self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 > self.assertIn('Success', 09:46:29 response['output']['result']) 09:46:29 E AssertionError: 'Success' not found in 'Failed' 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:182: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_14_calculate_span_loss_base_all 09:46:29 ___________ TransportOlmTesting.test_15_get_OTS_DEG1_TTP_TXRX_ROADMA ___________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_15_get_OTS_DEG1_TTP_TXRX_ROADMA(self): 09:46:29 response = test_utils.check_node_attribute2_request( 09:46:29 'ROADMA01', 'interface', 'OTS-DEG1-TTP-TXRX', 'org-openroadm-optical-transport-interfaces:ots') 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 503 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:197: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_15_get_OTS_DEG1_TTP_TXRX_ROADMA 09:46:29 ___________ TransportOlmTesting.test_16_get_OTS_DEG2_TTP_TXRX_ROADMC ___________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_16_get_OTS_DEG2_TTP_TXRX_ROADMC(self): 09:46:29 response = test_utils.check_node_attribute2_request( 09:46:29 'ROADMC01', 'interface', 'OTS-DEG2-TTP-TXRX', 'org-openroadm-optical-transport-interfaces:ots') 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 503 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:208: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_16_get_OTS_DEG2_TTP_TXRX_ROADMC 09:46:29 _____________ TransportOlmTesting.test_17_servicePath_create_AToZ ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_17_servicePath_create_AToZ(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-device-renderer', 'service-path', 09:46:29 { 09:46:29 'service-name': 'test', 09:46:29 'wave-number': '1', 09:46:29 'modulation-format': 'dp-qpsk', 09:46:29 'operation': 'create', 09:46:29 'nodes': 09:46:29 [{'node-id': 'XPDRA01', 09:46:29 'dest-tp': 'XPDR1-NETWORK1', 'src-tp': 'XPDR1-CLIENT1'}, 09:46:29 {'node-id': 'ROADMA01', 09:46:29 'dest-tp': 'DEG1-TTP-TXRX', 'src-tp': 'SRG1-PP1-TXRX'}, 09:46:29 {'node-id': 'ROADMC01', 09:46:29 'dest-tp': 'SRG1-PP1-TXRX', 'src-tp': 'DEG2-TTP-TXRX'}, 09:46:29 {'node-id': 'XPDRC01', 09:46:29 'dest-tp': 'XPDR1-CLIENT1', 'src-tp': 'XPDR1-NETWORK1'}], 09:46:29 'center-freq': 196.1, 09:46:29 'nmc-width': 40, 09:46:29 'min-freq': 196.075, 09:46:29 'max-freq': 196.125, 09:46:29 'lower-spectral-slot-number': 761, 09:46:29 'higher-spectral-slot-number': 768 09:46:29 }) 09:46:29 self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 > self.assertIn('Interfaces created successfully for nodes: ', response['output']['result']) 09:46:29 E AssertionError: 'Interfaces created successfully for nodes: ' not found in 'XPDRC01 is not mounted on the controller\nROADMC01 is not mounted on the controller\nROADMA01 is not mounted on the controller\nXPDRA01 is not mounted on the controller' 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:237: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_17_servicePath_create_AToZ 09:46:29 _____________ TransportOlmTesting.test_18_servicePath_create_ZToA ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_18_servicePath_create_ZToA(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-device-renderer', 'service-path', 09:46:29 { 09:46:29 'service-name': 'test', 09:46:29 'wave-number': '1', 09:46:29 'modulation-format': 'dp-qpsk', 09:46:29 'operation': 'create', 09:46:29 'nodes': 09:46:29 [{'node-id': 'XPDRC01', 09:46:29 'dest-tp': 'XPDR1-NETWORK1', 'src-tp': 'XPDR1-CLIENT1'}, 09:46:29 {'node-id': 'ROADMC01', 09:46:29 'dest-tp': 'DEG2-TTP-TXRX', 'src-tp': 'SRG1-PP1-TXRX'}, 09:46:29 {'node-id': 'ROADMA01', 09:46:29 'src-tp': 'DEG1-TTP-TXRX', 'dest-tp': 'SRG1-PP1-TXRX'}, 09:46:29 {'node-id': 'XPDRA01', 09:46:29 'src-tp': 'XPDR1-NETWORK1', 'dest-tp': 'XPDR1-CLIENT1'}], 09:46:29 'center-freq': 196.1, 09:46:29 'nmc-width': 40, 09:46:29 'min-freq': 196.075, 09:46:29 'max-freq': 196.125, 09:46:29 'lower-spectral-slot-number': 761, 09:46:29 'higher-spectral-slot-number': 768 09:46:29 }) 09:46:29 self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 > self.assertIn('Interfaces created successfully for nodes: ', response['output']['result']) 09:46:29 E AssertionError: 'Interfaces created successfully for nodes: ' not found in 'ROADMA01 is not mounted on the controller\nXPDRA01 is not mounted on the controller\nROADMC01 is not mounted on the controller\nXPDRC01 is not mounted on the controller' 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:265: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_18_servicePath_create_ZToA 09:46:29 _________ TransportOlmTesting.test_19_service_power_setup_XPDRA_XPDRC __________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_19_service_power_setup_XPDRA_XPDRC(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-olm', 'service-power-setup', 09:46:29 { 09:46:29 'service-name': 'test', 09:46:29 'wave-number': 1, 09:46:29 'nodes': [ 09:46:29 { 09:46:29 'dest-tp': 'XPDR1-NETWORK1', 09:46:29 'src-tp': 'XPDR1-CLIENT1', 09:46:29 'node-id': 'XPDRA01' 09:46:29 }, 09:46:29 { 09:46:29 'dest-tp': 'DEG1-TTP-TXRX', 09:46:29 'src-tp': 'SRG1-PP1-TXRX', 09:46:29 'node-id': 'ROADMA01' 09:46:29 }, 09:46:29 { 09:46:29 'dest-tp': 'SRG1-PP1-TXRX', 09:46:29 'src-tp': 'DEG2-TTP-TXRX', 09:46:29 'node-id': 'ROADMC01' 09:46:29 }, 09:46:29 { 09:46:29 'dest-tp': 'XPDR1-CLIENT1', 09:46:29 'src-tp': 'XPDR1-NETWORK1', 09:46:29 'node-id': 'XPDRC01' 09:46:29 } 09:46:29 ], 09:46:29 'center-freq': 196.1, 09:46:29 'nmc-width': 40, 09:46:29 'min-freq': 196.075, 09:46:29 'max-freq': 196.125, 09:46:29 'lower-spectral-slot-number': 761, 09:46:29 'higher-spectral-slot-number': 768 09:46:29 }) 09:46:29 self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 > self.assertIn('Success', response['output']['result']) 09:46:29 E AssertionError: 'Success' not found in 'Failed' 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:304: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_19_service_power_setup_XPDRA_XPDRC 09:46:29 ________ TransportOlmTesting.test_20_get_interface_XPDRA_XPDR1_NETWORK1 ________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_20_get_interface_XPDRA_XPDR1_NETWORK1(self): 09:46:29 response = test_utils.check_node_attribute2_request( 09:46:29 'XPDRA01', 'interface', 'XPDR1-NETWORK1-761:768', 'org-openroadm-optical-channel-interfaces:och') 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 503 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:309: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_20_get_interface_XPDRA_XPDR1_NETWORK1 09:46:29 ____________ TransportOlmTesting.test_21_get_roadmconnection_ROADMA ____________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_21_get_roadmconnection_ROADMA(self): 09:46:29 response = test_utils.check_node_attribute_request( 09:46:29 'ROADMA01', 'roadm-connections', 'SRG1-PP1-TXRX-DEG1-TTP-TXRX-761:768') 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 503 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:316: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_21_get_roadmconnection_ROADMA 09:46:29 ____________ TransportOlmTesting.test_22_get_roadmconnection_ROADMC ____________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_22_get_roadmconnection_ROADMC(self): 09:46:29 response = test_utils.check_node_attribute_request( 09:46:29 'ROADMC01', 'roadm-connections', 'DEG2-TTP-TXRX-SRG1-PP1-TXRX-761:768') 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 503 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:323: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_22_get_roadmconnection_ROADMC 09:46:29 _________ TransportOlmTesting.test_23_service_power_setup_XPDRC_XPDRA __________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_23_service_power_setup_XPDRC_XPDRA(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-olm', 'service-power-setup', 09:46:29 { 09:46:29 'service-name': 'test', 09:46:29 'wave-number': 1, 09:46:29 'nodes': [ 09:46:29 { 09:46:29 'dest-tp': 'XPDR1-NETWORK1', 09:46:29 'src-tp': 'XPDR1-CLIENT1', 09:46:29 'node-id': 'XPDRC01' 09:46:29 }, 09:46:29 { 09:46:29 'dest-tp': 'DEG2-TTP-TXRX', 09:46:29 'src-tp': 'SRG1-PP1-TXRX', 09:46:29 'node-id': 'ROADMC01' 09:46:29 }, 09:46:29 { 09:46:29 'src-tp': 'DEG1-TTP-TXRX', 09:46:29 'dest-tp': 'SRG1-PP1-TXRX', 09:46:29 'node-id': 'ROADMA01' 09:46:29 }, 09:46:29 { 09:46:29 'src-tp': 'XPDR1-NETWORK1', 09:46:29 'dest-tp': 'XPDR1-CLIENT1', 09:46:29 'node-id': 'XPDRA01' 09:46:29 } 09:46:29 ], 09:46:29 'center-freq': 196.1, 09:46:29 'nmc-width': 40, 09:46:29 'min-freq': 196.075, 09:46:29 'max-freq': 196.125, 09:46:29 'lower-spectral-slot-number': 761, 09:46:29 'higher-spectral-slot-number': 768 09:46:29 }) 09:46:29 self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 > self.assertIn('Success', response['output']['result']) 09:46:29 E AssertionError: 'Success' not found in 'Failed' 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:362: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_23_service_power_setup_XPDRC_XPDRA 09:46:29 ________ TransportOlmTesting.test_24_get_interface_XPDRC_XPDR1_NETWORK1 ________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_24_get_interface_XPDRC_XPDR1_NETWORK1(self): 09:46:29 response = test_utils.check_node_attribute2_request( 09:46:29 'XPDRC01', 'interface', 'XPDR1-NETWORK1-761:768', 'org-openroadm-optical-channel-interfaces:och') 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 503 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:367: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_24_get_interface_XPDRC_XPDR1_NETWORK1 09:46:29 ____________ TransportOlmTesting.test_25_get_roadmconnection_ROADMC ____________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_25_get_roadmconnection_ROADMC(self): 09:46:29 response = test_utils.check_node_attribute_request( 09:46:29 'ROADMC01', 'roadm-connections', 'SRG1-PP1-TXRX-DEG2-TTP-TXRX-761:768') 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 503 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:374: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_25_get_roadmconnection_ROADMC 09:46:29 ________ TransportOlmTesting.test_26_service_power_turndown_XPDRA_XPDRC ________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_26_service_power_turndown_XPDRA_XPDRC(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-olm', 'service-power-turndown', 09:46:29 { 09:46:29 'service-name': 'test', 09:46:29 'wave-number': 1, 09:46:29 'nodes': [ 09:46:29 { 09:46:29 'dest-tp': 'XPDR1-NETWORK1', 09:46:29 'src-tp': 'XPDR1-CLIENT1', 09:46:29 'node-id': 'XPDRA01' 09:46:29 }, 09:46:29 { 09:46:29 'dest-tp': 'DEG1-TTP-TXRX', 09:46:29 'src-tp': 'SRG1-PP1-TXRX', 09:46:29 'node-id': 'ROADMA01' 09:46:29 }, 09:46:29 { 09:46:29 'dest-tp': 'SRG1-PP1-TXRX', 09:46:29 'src-tp': 'DEG2-TTP-TXRX', 09:46:29 'node-id': 'ROADMC01' 09:46:29 }, 09:46:29 { 09:46:29 'dest-tp': 'XPDR1-CLIENT1', 09:46:29 'src-tp': 'XPDR1-NETWORK1', 09:46:29 'node-id': 'XPDRC01' 09:46:29 } 09:46:29 ], 09:46:29 'center-freq': 196.1, 09:46:29 'nmc-width': 40, 09:46:29 'min-freq': 196.075, 09:46:29 'max-freq': 196.125, 09:46:29 'lower-spectral-slot-number': 761, 09:46:29 'higher-spectral-slot-number': 768 09:46:29 }) 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 500 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:413: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_26_service_power_turndown_XPDRA_XPDRC 09:46:29 ____________ TransportOlmTesting.test_27_get_roadmconnection_ROADMA ____________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_27_get_roadmconnection_ROADMA(self): 09:46:29 response = test_utils.check_node_attribute_request( 09:46:29 'ROADMA01', 'roadm-connections', 'SRG1-PP1-TXRX-DEG1-TTP-TXRX-761:768') 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 503 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:419: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_27_get_roadmconnection_ROADMA 09:46:29 ____________ TransportOlmTesting.test_28_get_roadmconnection_ROADMC ____________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_28_get_roadmconnection_ROADMC(self): 09:46:29 response = test_utils.check_node_attribute_request( 09:46:29 'ROADMC01', 'roadm-connections', 'DEG2-TTP-TXRX-SRG1-PP1-TXRX-761:768') 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 503 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:426: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_28_get_roadmconnection_ROADMC 09:46:29 _____________ TransportOlmTesting.test_29_servicePath_delete_AToZ ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_29_servicePath_delete_AToZ(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-device-renderer', 'service-path', 09:46:29 { 09:46:29 'service-name': 'test', 09:46:29 'wave-number': '1', 09:46:29 'modulation-format': 'dp-qpsk', 09:46:29 'operation': 'delete', 09:46:29 'nodes': 09:46:29 [{'node-id': 'XPDRA01', 09:46:29 'dest-tp': 'XPDR1-NETWORK1', 'src-tp': 'XPDR1-CLIENT1'}, 09:46:29 {'node-id': 'ROADMA01', 09:46:29 'dest-tp': 'DEG1-TTP-TXRX', 'src-tp': 'SRG1-PP1-TXRX'}, 09:46:29 {'node-id': 'ROADMC01', 09:46:29 'dest-tp': 'SRG1-PP1-TXRX', 'src-tp': 'DEG2-TTP-TXRX'}, 09:46:29 {'node-id': 'XPDRC01', 09:46:29 'dest-tp': 'XPDR1-CLIENT1', 'src-tp': 'XPDR1-NETWORK1'}], 09:46:29 'center-freq': 196.1, 09:46:29 'nmc-width': 40, 09:46:29 'min-freq': 196.075, 09:46:29 'max-freq': 196.125, 09:46:29 'lower-spectral-slot-number': 761, 09:46:29 'higher-spectral-slot-number': 768 09:46:29 }) 09:46:29 self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 > self.assertIn('Request processed', response['output']['result']) 09:46:29 E AssertionError: 'Request processed' not found in 'ROADMC01 is not mounted on the controller\nROADMA01 is not mounted on the controller\nXPDRA01 is not mounted on the controller\nXPDRC01 is not mounted on the controller' 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:454: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_29_servicePath_delete_AToZ 09:46:29 _____________ TransportOlmTesting.test_30_servicePath_delete_ZToA ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_30_servicePath_delete_ZToA(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-device-renderer', 'service-path', 09:46:29 { 09:46:29 'service-name': 'test', 09:46:29 'wave-number': '1', 09:46:29 'modulation-format': 'dp-qpsk', 09:46:29 'operation': 'delete', 09:46:29 'nodes': 09:46:29 [{'node-id': 'XPDRC01', 09:46:29 'dest-tp': 'XPDR1-NETWORK1', 'src-tp': 'XPDR1-CLIENT1'}, 09:46:29 {'node-id': 'ROADMC01', 09:46:29 'dest-tp': 'DEG2-TTP-TXRX', 'src-tp': 'SRG1-PP1-TXRX'}, 09:46:29 {'node-id': 'ROADMA01', 09:46:29 'src-tp': 'DEG1-TTP-TXRX', 'dest-tp': 'SRG1-PP1-TXRX'}, 09:46:29 {'node-id': 'XPDRA01', 09:46:29 'src-tp': 'XPDR1-NETWORK1', 'dest-tp': 'XPDR1-CLIENT1'}], 09:46:29 'center-freq': 196.1, 09:46:29 'nmc-width': 40, 09:46:29 'min-freq': 196.075, 09:46:29 'max-freq': 196.125, 09:46:29 'lower-spectral-slot-number': 761, 09:46:29 'higher-spectral-slot-number': 768 09:46:29 }) 09:46:29 self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 > self.assertIn('Request processed', response['output']['result']) 09:46:29 E AssertionError: 'Request processed' not found in 'ROADMA01 is not mounted on the controller\nXPDRA01 is not mounted on the controller\nROADMC01 is not mounted on the controller\nXPDRC01 is not mounted on the controller' 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:482: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_30_servicePath_delete_ZToA 09:46:29 _____________ TransportOlmTesting.test_31_connect_xpdrA_to_roadmA ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_31_connect_xpdrA_to_roadmA(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-networkutils', 'init-xpdr-rdm-links', 09:46:29 {'links-input': {'xpdr-node': 'XPDRA01', 'xpdr-num': '1', 'network-num': '2', 09:46:29 'rdm-node': 'ROADMA01', 'srg-num': '1', 'termination-point-num': 'SRG1-PP2-TXRX'}}) 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 204 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:492: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_31_connect_xpdrA_to_roadmA 09:46:29 _____________ TransportOlmTesting.test_32_connect_roadmA_to_xpdrA ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_32_connect_roadmA_to_xpdrA(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-networkutils', 'init-rdm-xpdr-links', 09:46:29 {'links-input': {'xpdr-node': 'XPDRA01', 'xpdr-num': '1', 'network-num': '2', 09:46:29 'rdm-node': 'ROADMA01', 'srg-num': '1', 'termination-point-num': 'SRG1-PP2-TXRX'}}) 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 204 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:499: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_32_connect_roadmA_to_xpdrA 09:46:29 _____________ TransportOlmTesting.test_33_servicePath_create_AToZ ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_33_servicePath_create_AToZ(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-device-renderer', 'service-path', 09:46:29 { 09:46:29 'service-name': 'test2', 09:46:29 'wave-number': '2', 09:46:29 'modulation-format': 'dp-qpsk', 09:46:29 'operation': 'create', 09:46:29 'nodes': 09:46:29 [{'node-id': 'XPDRA01', 09:46:29 'dest-tp': 'XPDR1-NETWORK2', 'src-tp': 'XPDR1-CLIENT2'}, 09:46:29 {'node-id': 'ROADMA01', 09:46:29 'dest-tp': 'DEG1-TTP-TXRX', 'src-tp': 'SRG1-PP2-TXRX'}], 09:46:29 'center-freq': 196.05, 09:46:29 'nmc-width': 40, 09:46:29 'min-freq': 196.025, 09:46:29 'max-freq': 196.075, 09:46:29 'lower-spectral-slot-number': 753, 09:46:29 'higher-spectral-slot-number': 760 09:46:29 }) 09:46:29 self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 > self.assertIn('Interfaces created successfully for nodes', response['output']['result']) 09:46:29 E AssertionError: 'Interfaces created successfully for nodes' not found in 'ROADMA01 is not mounted on the controller\nXPDRA01 is not mounted on the controller' 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:522: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_33_servicePath_create_AToZ 09:46:29 ________ TransportOlmTesting.test_34_get_interface_XPDRA_XPDR1_NETWORK2 ________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_34_get_interface_XPDRA_XPDR1_NETWORK2(self): 09:46:29 response = test_utils.check_node_attribute2_request( 09:46:29 'XPDRA01', 'interface', 'XPDR1-NETWORK2-753:760', 'org-openroadm-optical-channel-interfaces:och') 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 503 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:528: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_34_get_interface_XPDRA_XPDR1_NETWORK2 09:46:29 _____________ TransportOlmTesting.test_35_servicePath_delete_AToZ ______________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_35_servicePath_delete_AToZ(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-device-renderer', 'service-path', 09:46:29 { 09:46:29 'service-name': 'test2', 09:46:29 'wave-number': '2', 09:46:29 'modulation-format': 'dp-qpsk', 09:46:29 'operation': 'delete', 09:46:29 'nodes': 09:46:29 [{'node-id': 'XPDRA01', 09:46:29 'dest-tp': 'XPDR1-NETWORK2', 'src-tp': 'XPDR1-CLIENT2'}, 09:46:29 {'node-id': 'ROADMA01', 09:46:29 'dest-tp': 'DEG1-TTP-TXRX', 'src-tp': 'SRG1-PP2-TXRX'}], 09:46:29 'center-freq': 196.05, 09:46:29 'nmc-width': 40, 09:46:29 'min-freq': 196.025, 09:46:29 'max-freq': 196.075, 09:46:29 'lower-spectral-slot-number': 753, 09:46:29 'higher-spectral-slot-number': 760 09:46:29 }) 09:46:29 self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 > self.assertIn('Request processed', response['output']['result']) 09:46:29 E AssertionError: 'Request processed' not found in 'ROADMA01 is not mounted on the controller\nXPDRA01 is not mounted on the controller' 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:553: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_35_servicePath_delete_AToZ 09:46:29 ____________ TransportOlmTesting.test_36_xpdrA_device_disconnected _____________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_36_xpdrA_device_disconnected(self): 09:46:29 response = test_utils.unmount_device("XPDRA01") 09:46:29 > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) 09:46:29 E AssertionError: 409 not found in (200, 204) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:558: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_36_xpdrA_device_disconnected 09:46:29 Searching for pattern 'onDeviceDisConnected:\ XPDRA01' in karaf.log... Pattern not found after 180 seconds! Node XPDRA01 still not deleted from tpce topology... 09:46:29 ____________ TransportOlmTesting.test_37_xpdrC_device_disconnected _____________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_37_xpdrC_device_disconnected(self): 09:46:29 response = test_utils.unmount_device("XPDRC01") 09:46:29 > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) 09:46:29 E AssertionError: 409 not found in (200, 204) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:562: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_37_xpdrC_device_disconnected 09:46:29 Searching for pattern 'onDeviceDisConnected:\ XPDRC01' in karaf.log... Pattern not found after 180 seconds! Node XPDRC01 still not deleted from tpce topology... 09:46:29 ___________ TransportOlmTesting.test_38_calculate_span_loss_current ____________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_38_calculate_span_loss_current(self): 09:46:29 response = test_utils.transportpce_api_rpc_request( 09:46:29 'transportpce-olm', 'calculate-spanloss-current', 09:46:29 None) 09:46:29 > self.assertEqual(response['status_code'], requests.codes.ok) 09:46:29 E AssertionError: 204 != 200 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:568: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_38_calculate_span_loss_current 09:46:29 _____________ TransportOlmTesting.test_39_rdmA_device_disconnected _____________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_39_rdmA_device_disconnected(self): 09:46:29 response = test_utils.unmount_device("ROADMA01") 09:46:29 > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) 09:46:29 E AssertionError: 409 not found in (200, 204) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:575: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_39_rdmA_device_disconnected 09:46:29 Searching for pattern 'onDeviceDisConnected:\ ROADMA01' in karaf.log... Pattern not found after 180 seconds! Node ROADMA01 still not deleted from tpce topology... 09:46:29 _____________ TransportOlmTesting.test_40_rdmC_device_disconnected _____________ 09:46:29 09:46:29 self = 09:46:29 09:46:29 def test_40_rdmC_device_disconnected(self): 09:46:29 response = test_utils.unmount_device("ROADMC01") 09:46:29 > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) 09:46:29 E AssertionError: 409 not found in (200, 204) 09:46:29 09:46:29 transportpce_tests/1.2.1/test05_olm.py:579: AssertionError 09:46:29 ----------------------------- Captured stdout call ----------------------------- 09:46:29 execution of test_40_rdmC_device_disconnected 09:46:29 Searching for pattern 'onDeviceDisConnected:\ ROADMC01' in karaf.log... Pattern not found after 180 seconds! Node ROADMC01 still not deleted from tpce topology... 09:46:29 --------------------------- Captured stdout teardown --------------------------- 09:46:29 all processes killed 09:46:29 =========================== short test summary info ============================ 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_01_xpdrA_device_connected 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_02_xpdrC_device_connected 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_03_rdmA_device_connected 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_04_rdmC_device_connected 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_05_connect_xpdrA_to_roadmA 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_06_connect_roadmA_to_xpdrA 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_07_connect_xpdrC_to_roadmC 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_08_connect_roadmC_to_xpdrC 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_11_get_PM_ROADMA 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_12_get_PM_ROADMC 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_13_calculate_span_loss_base_ROADMA_ROADMC 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_14_calculate_span_loss_base_all 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_15_get_OTS_DEG1_TTP_TXRX_ROADMA 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_16_get_OTS_DEG2_TTP_TXRX_ROADMC 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_17_servicePath_create_AToZ 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_18_servicePath_create_ZToA 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_19_service_power_setup_XPDRA_XPDRC 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_20_get_interface_XPDRA_XPDR1_NETWORK1 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_21_get_roadmconnection_ROADMA 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_22_get_roadmconnection_ROADMC 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_23_service_power_setup_XPDRC_XPDRA 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_24_get_interface_XPDRC_XPDR1_NETWORK1 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_25_get_roadmconnection_ROADMC 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_26_service_power_turndown_XPDRA_XPDRC 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_27_get_roadmconnection_ROADMA 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_28_get_roadmconnection_ROADMC 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_29_servicePath_delete_AToZ 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_30_servicePath_delete_ZToA 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_31_connect_xpdrA_to_roadmA 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_32_connect_roadmA_to_xpdrA 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_33_servicePath_create_AToZ 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_34_get_interface_XPDRA_XPDR1_NETWORK2 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_35_servicePath_delete_AToZ 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_36_xpdrA_device_disconnected 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_37_xpdrC_device_disconnected 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_38_calculate_span_loss_current 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_39_rdmA_device_disconnected 09:46:29 FAILED transportpce_tests/1.2.1/test05_olm.py::TransportOlmTesting::test_40_rdmC_device_disconnected 09:46:29 38 failed, 2 passed in 816.82s (0:13:36) 09:46:29 tests_network: FAIL ✖ in 4 minutes 28.2 seconds 09:46:29 tests121: exit 1 (2292.55 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 pid=35677 09:48:48 . [100%] 09:48:51 40 passed in 366.05s (0:06:06) 09:48:51 pytest -q transportpce_tests/2.2.1/test11_otn_end2end.py 09:49:37 ........................................................................ [ 74%] 09:55:14 ......................... [100%] 10:00:06 97 passed in 674.87s (0:11:14) 10:00:06 pytest -q transportpce_tests/2.2.1/test12_end2end.py 10:00:50 ...................................................... [100%] 10:10:37 54 passed in 630.75s (0:10:30) 10:10:37 pytest -q transportpce_tests/2.2.1/test14_otn_switch_end2end.py 10:11:32 ........................................................................ [ 71%] 10:16:42 ............................. [100%] 10:18:51 101 passed in 493.72s (0:08:13) 10:18:51 pytest -q transportpce_tests/2.2.1/test15_otn_end2end_with_intermediate_switch.py 10:19:48 ........................................................................ [ 67%] 10:25:33 ................................... [100%] 10:28:54 107 passed in 602.30s (0:10:02) 10:28:54 tests121: FAIL ✖ in 38 minutes 19.45 seconds 10:28:54 tests221: OK ✔ in 1 hour 1 minute 6.75 seconds 10:28:54 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:29:00 tests_hybrid: freeze> python -m pip freeze --all 10:29:00 tests_hybrid: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 10:29:00 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid 10:29:00 using environment variables from ./karaf121.env 10:29:00 pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py 10:29:45 ................................................... [100%] 10:31:32 51 passed in 151.26s (0:02:31) 10:31:32 pytest -q transportpce_tests/hybrid/test02_B100G_end2end.py 10:32:14 ........................................................................ [ 66%] 10:36:34 ..................................... [100%] 10:38:50 109 passed in 428.21s (0:07:08) 10:38:50 pytest -q transportpce_tests/hybrid/test03_autonomous_reroute.py 10:39:31 ..................................................... [100%] 10:46:03 53 passed in 442.91s (0:07:22) 10:46:03 tests_hybrid: OK ✔ in 17 minutes 9.55 seconds 10:46:03 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:46:09 buildlighty: freeze> python -m pip freeze --all 10:46:09 buildlighty: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==43.0.1,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.5.0,pip==24.2,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.2.0,urllib3==2.2.3,wheel==0.44.0 10:46:09 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh 10:46:09 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED 10:46:24 [ERROR] COMPILATION ERROR : 10:46:24 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[17,42] cannot find symbol 10:46:24 symbol: class YangModuleInfo 10:46:24 location: package org.opendaylight.yangtools.binding 10:46:24 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[21,30] cannot find symbol 10:46:24 symbol: class YangModuleInfo 10:46:24 location: class io.lighty.controllers.tpce.utils.TPCEUtils 10:46:24 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[343,30] cannot find symbol 10:46:24 symbol: class YangModuleInfo 10:46:24 location: class io.lighty.controllers.tpce.utils.TPCEUtils 10:46:24 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[350,23] cannot find symbol 10:46:24 symbol: class YangModuleInfo 10:46:24 location: class io.lighty.controllers.tpce.utils.TPCEUtils 10:46:24 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile (default-compile) on project tpce: Compilation failure: Compilation failure: 10:46:24 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[17,42] cannot find symbol 10:46:24 [ERROR] symbol: class YangModuleInfo 10:46:24 [ERROR] location: package org.opendaylight.yangtools.binding 10:46:24 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[21,30] cannot find symbol 10:46:24 [ERROR] symbol: class YangModuleInfo 10:46:24 [ERROR] location: class io.lighty.controllers.tpce.utils.TPCEUtils 10:46:24 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[343,30] cannot find symbol 10:46:24 [ERROR] symbol: class YangModuleInfo 10:46:24 [ERROR] location: class io.lighty.controllers.tpce.utils.TPCEUtils 10:46:24 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[350,23] cannot find symbol 10:46:24 [ERROR] symbol: class YangModuleInfo 10:46:24 [ERROR] location: class io.lighty.controllers.tpce.utils.TPCEUtils 10:46:24 [ERROR] -> [Help 1] 10:46:24 [ERROR] 10:46:24 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 10:46:24 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 10:46:24 [ERROR] 10:46:24 [ERROR] For more information about the errors and possible solutions, please read the following articles: 10:46:24 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 10:46:24 unzip: cannot find or open target/tpce-bin.zip, target/tpce-bin.zip.zip or target/tpce-bin.zip.ZIP. 10:46:24 buildlighty: exit 9 (14.98 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh pid=65582 10:46:24 buildlighty: command failed but is marked ignore outcome so handling it as success 10:46:24 buildcontroller: OK (108.06=setup[8.00]+cmd[100.07] seconds) 10:46:24 testsPCE: OK (316.01=setup[68.39]+cmd[247.62] seconds) 10:46:24 sims: OK (10.96=setup[7.62]+cmd[3.34] seconds) 10:46:24 build_karaf_tests121: OK (55.27=setup[7.54]+cmd[47.73] seconds) 10:46:24 tests121: FAIL code 1 (2299.45=setup[6.90]+cmd[2292.55] seconds) 10:46:24 build_karaf_tests221: OK (53.83=setup[7.54]+cmd[46.29] seconds) 10:46:24 tests_tapi: OK (1010.44=setup[7.02]+cmd[1003.42] seconds) 10:46:24 tests_network: FAIL code 1 (268.20=setup[6.71]+cmd[261.48] seconds) 10:46:24 tests221: OK (3666.75=setup[6.70]+cmd[3660.05] seconds) 10:46:24 build_karaf_tests71: OK (52.82=setup[11.76]+cmd[41.06] seconds) 10:46:24 tests71: OK (427.21=setup[5.98]+cmd[421.23] seconds) 10:46:24 build_karaf_tests_hybrid: OK (62.03=setup[7.69]+cmd[54.34] seconds) 10:46:24 tests_hybrid: OK (1029.55=setup[6.50]+cmd[1023.05] seconds) 10:46:24 buildlighty: OK (21.15=setup[6.17]+cmd[14.98] seconds) 10:46:24 docs: OK (35.32=setup[32.75]+cmd[2.57] seconds) 10:46:24 docs-linkcheck: OK (36.25=setup[33.04]+cmd[3.21] seconds) 10:46:24 checkbashisms: OK (3.07=setup[2.06]+cmd[0.02,0.05,0.94] seconds) 10:46:24 pre-commit: OK (46.80=setup[3.48]+cmd[0.01,0.00,35.81,7.50] seconds) 10:46:24 pylint: FAIL code 1 (28.61=setup[5.98]+cmd[22.63] seconds) 10:46:24 evaluation failed :( (6318.52 seconds) 10:46:24 + tox_status=255 10:46:24 + echo '---> Completed tox runs' 10:46:24 ---> Completed tox runs 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/build_karaf_tests121/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=build_karaf_tests121 10:46:24 + cp -r .tox/build_karaf_tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests121 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/build_karaf_tests221/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=build_karaf_tests221 10:46:24 + cp -r .tox/build_karaf_tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests221 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/build_karaf_tests71/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=build_karaf_tests71 10:46:24 + cp -r .tox/build_karaf_tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests71 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/build_karaf_tests_hybrid/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=build_karaf_tests_hybrid 10:46:24 + cp -r .tox/build_karaf_tests_hybrid/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests_hybrid 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/buildcontroller/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=buildcontroller 10:46:24 + cp -r .tox/buildcontroller/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildcontroller 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/buildlighty/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=buildlighty 10:46:24 + cp -r .tox/buildlighty/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildlighty 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/checkbashisms/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=checkbashisms 10:46:24 + cp -r .tox/checkbashisms/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/checkbashisms 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/docs-linkcheck/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=docs-linkcheck 10:46:24 + cp -r .tox/docs-linkcheck/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs-linkcheck 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/docs/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=docs 10:46:24 + cp -r .tox/docs/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/pre-commit/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=pre-commit 10:46:24 + cp -r .tox/pre-commit/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pre-commit 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/pylint/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=pylint 10:46:24 + cp -r .tox/pylint/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pylint 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/sims/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=sims 10:46:24 + cp -r .tox/sims/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/sims 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/tests121/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=tests121 10:46:24 + cp -r .tox/tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests121 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/tests221/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=tests221 10:46:24 + cp -r .tox/tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests221 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/tests71/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=tests71 10:46:24 + cp -r .tox/tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests71 10:46:24 + for i in .tox/*/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 ++ echo .tox/testsPCE/log 10:46:24 + tox_env=testsPCE 10:46:24 + cp -r .tox/testsPCE/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/testsPCE 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/tests_hybrid/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=tests_hybrid 10:46:24 + cp -r .tox/tests_hybrid/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_hybrid 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/tests_network/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=tests_network 10:46:24 + cp -r .tox/tests_network/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_network 10:46:24 + for i in .tox/*/log 10:46:24 ++ echo .tox/tests_tapi/log 10:46:24 ++ awk -F/ '{print $2}' 10:46:24 + tox_env=tests_tapi 10:46:24 + cp -r .tox/tests_tapi/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_tapi 10:46:24 + DOC_DIR=docs/_build/html 10:46:24 + [[ -d docs/_build/html ]] 10:46:24 + echo '---> Archiving generated docs' 10:46:24 ---> Archiving generated docs 10:46:24 + mv docs/_build/html /w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 10:46:24 + echo '---> tox-run.sh ends' 10:46:24 ---> tox-run.sh ends 10:46:24 + test 255 -eq 0 10:46:24 + exit 255 10:46:24 ++ '[' 1 = 1 ']' 10:46:24 ++ '[' -x /usr/bin/clear_console ']' 10:46:24 ++ /usr/bin/clear_console -q 10:46:24 Build step 'Execute shell' marked build as failure 10:46:25 $ ssh-agent -k 10:46:25 unset SSH_AUTH_SOCK; 10:46:25 unset SSH_AGENT_PID; 10:46:25 echo Agent pid 12450 killed; 10:46:25 [ssh-agent] Stopped. 10:46:25 [PostBuildScript] - [INFO] Executing post build scripts. 10:46:25 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins13258847737987766661.sh 10:46:25 ---> sysstat.sh 10:46:25 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins2705794891581272257.sh 10:46:25 ---> package-listing.sh 10:46:25 ++ facter osfamily 10:46:25 ++ tr '[:upper:]' '[:lower:]' 10:46:26 + OS_FAMILY=debian 10:46:26 + workspace=/w/workspace/transportpce-tox-verify-transportpce-master 10:46:26 + START_PACKAGES=/tmp/packages_start.txt 10:46:26 + END_PACKAGES=/tmp/packages_end.txt 10:46:26 + DIFF_PACKAGES=/tmp/packages_diff.txt 10:46:26 + PACKAGES=/tmp/packages_start.txt 10:46:26 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 10:46:26 + PACKAGES=/tmp/packages_end.txt 10:46:26 + case "${OS_FAMILY}" in 10:46:26 + dpkg -l 10:46:26 + grep '^ii' 10:46:26 + '[' -f /tmp/packages_start.txt ']' 10:46:26 + '[' -f /tmp/packages_end.txt ']' 10:46:26 + diff /tmp/packages_start.txt /tmp/packages_end.txt 10:46:26 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 10:46:26 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 10:46:26 + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 10:46:26 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins1823909705629905462.sh 10:46:26 ---> capture-instance-metadata.sh 10:46:26 Setup pyenv: 10:46:26 system 10:46:26 3.8.13 10:46:26 3.9.13 10:46:26 3.10.13 10:46:26 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:46:26 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-xPlt from file:/tmp/.os_lf_venv 10:46:27 lf-activate-venv(): INFO: Installing: lftools 10:46:40 lf-activate-venv(): INFO: Adding /tmp/venv-xPlt/bin to PATH 10:46:40 INFO: Running in OpenStack, capturing instance metadata 10:46:41 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins12809264289316634483.sh 10:46:42 provisioning config files... 10:46:42 Could not find credentials [logs] for transportpce-tox-verify-transportpce-master #2089 10:46:42 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/transportpce-tox-verify-transportpce-master@tmp/config632842260120381929tmp 10:46:42 Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] 10:46:42 Run condition [Regular expression match] enabling perform for step [Provide Configuration files] 10:46:42 provisioning config files... 10:46:42 copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials 10:46:42 [EnvInject] - Injecting environment variables from a build step. 10:46:42 [EnvInject] - Injecting as environment variables the properties content 10:46:42 SERVER_ID=logs 10:46:42 10:46:42 [EnvInject] - Variables injected successfully. 10:46:42 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins17364190974474177306.sh 10:46:42 ---> create-netrc.sh 10:46:42 WARN: Log server credential not found. 10:46:43 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins13934722348572454961.sh 10:46:43 ---> python-tools-install.sh 10:46:43 Setup pyenv: 10:46:43 system 10:46:43 3.8.13 10:46:43 3.9.13 10:46:43 3.10.13 10:46:43 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:46:43 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-xPlt from file:/tmp/.os_lf_venv 10:46:44 lf-activate-venv(): INFO: Installing: lftools 10:46:52 lf-activate-venv(): INFO: Adding /tmp/venv-xPlt/bin to PATH 10:46:52 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins2516380258557726960.sh 10:46:52 ---> sudo-logs.sh 10:46:52 Archiving 'sudo' log.. 10:46:52 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins18345728514349690680.sh 10:46:52 ---> job-cost.sh 10:46:52 Setup pyenv: 10:46:53 system 10:46:53 3.8.13 10:46:53 3.9.13 10:46:53 3.10.13 10:46:53 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:46:53 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-xPlt from file:/tmp/.os_lf_venv 10:46:53 lf-activate-venv(): INFO: Installing: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 10:46:59 lf-activate-venv(): INFO: Adding /tmp/venv-xPlt/bin to PATH 10:46:59 INFO: No Stack... 10:47:00 INFO: Retrieving Pricing Info for: v3-standard-4 10:47:00 INFO: Archiving Costs 10:47:00 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins16704842733872402163.sh 10:47:00 ---> logs-deploy.sh 10:47:00 Setup pyenv: 10:47:00 system 10:47:00 3.8.13 10:47:00 3.9.13 10:47:00 3.10.13 10:47:00 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:47:00 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-xPlt from file:/tmp/.os_lf_venv 10:47:01 lf-activate-venv(): INFO: Installing: lftools 10:47:11 lf-activate-venv(): INFO: Adding /tmp/venv-xPlt/bin to PATH 10:47:11 WARNING: Nexus logging server not set 10:47:11 INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/transportpce-tox-verify-transportpce-master/2089/ 10:47:11 INFO: archiving logs to S3 10:47:13 ---> uname -a: 10:47:13 Linux prd-ubuntu2004-docker-4c-16g-43706 5.4.0-190-generic #210-Ubuntu SMP Fri Jul 5 17:03:38 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux 10:47:13 10:47:13 10:47:13 ---> lscpu: 10:47:13 Architecture: x86_64 10:47:13 CPU op-mode(s): 32-bit, 64-bit 10:47:13 Byte Order: Little Endian 10:47:13 Address sizes: 40 bits physical, 48 bits virtual 10:47:13 CPU(s): 4 10:47:13 On-line CPU(s) list: 0-3 10:47:13 Thread(s) per core: 1 10:47:13 Core(s) per socket: 1 10:47:13 Socket(s): 4 10:47:13 NUMA node(s): 1 10:47:13 Vendor ID: AuthenticAMD 10:47:13 CPU family: 23 10:47:13 Model: 49 10:47:13 Model name: AMD EPYC-Rome Processor 10:47:13 Stepping: 0 10:47:13 CPU MHz: 2800.000 10:47:13 BogoMIPS: 5600.00 10:47:13 Virtualization: AMD-V 10:47:13 Hypervisor vendor: KVM 10:47:13 Virtualization type: full 10:47:13 L1d cache: 128 KiB 10:47:13 L1i cache: 128 KiB 10:47:13 L2 cache: 2 MiB 10:47:13 L3 cache: 64 MiB 10:47:13 NUMA node0 CPU(s): 0-3 10:47:13 Vulnerability Gather data sampling: Not affected 10:47:13 Vulnerability Itlb multihit: Not affected 10:47:13 Vulnerability L1tf: Not affected 10:47:13 Vulnerability Mds: Not affected 10:47:13 Vulnerability Meltdown: Not affected 10:47:13 Vulnerability Mmio stale data: Not affected 10:47:13 Vulnerability Retbleed: Vulnerable 10:47:13 Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp 10:47:13 Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 10:47:13 Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 10:47:13 Vulnerability Srbds: Not affected 10:47:13 Vulnerability Tsx async abort: Not affected 10:47:13 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:47:13 10:47:13 10:47:13 ---> nproc: 10:47:13 4 10:47:13 10:47:13 10:47:13 ---> df -h: 10:47:13 Filesystem Size Used Avail Use% Mounted on 10:47:13 udev 7.8G 0 7.8G 0% /dev 10:47:13 tmpfs 1.6G 1.1M 1.6G 1% /run 10:47:13 /dev/vda1 78G 17G 62G 21% / 10:47:13 tmpfs 7.9G 0 7.9G 0% /dev/shm 10:47:13 tmpfs 5.0M 0 5.0M 0% /run/lock 10:47:13 tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup 10:47:13 /dev/loop2 44M 44M 0 100% /snap/snapd/15177 10:47:13 /dev/loop0 62M 62M 0 100% /snap/core20/1405 10:47:13 /dev/loop1 68M 68M 0 100% /snap/lxd/22753 10:47:13 /dev/vda15 105M 6.1M 99M 6% /boot/efi 10:47:13 tmpfs 1.6G 0 1.6G 0% /run/user/1001 10:47:13 /dev/loop3 64M 64M 0 100% /snap/core20/2379 10:47:13 /dev/loop4 92M 92M 0 100% /snap/lxd/29619 10:47:13 10:47:13 10:47:13 ---> free -m: 10:47:13 total used free shared buff/cache available 10:47:13 Mem: 15997 710 6253 1 9033 14948 10:47:13 Swap: 1023 0 1023 10:47:13 10:47:13 10:47:13 ---> ip addr: 10:47:13 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 10:47:13 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 10:47:13 inet 127.0.0.1/8 scope host lo 10:47:13 valid_lft forever preferred_lft forever 10:47:13 inet6 ::1/128 scope host 10:47:13 valid_lft forever preferred_lft forever 10:47:13 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 10:47:13 link/ether fa:16:3e:d4:ec:9b brd ff:ff:ff:ff:ff:ff 10:47:13 inet 10.30.171.96/23 brd 10.30.171.255 scope global dynamic ens3 10:47:13 valid_lft 79913sec preferred_lft 79913sec 10:47:13 inet6 fe80::f816:3eff:fed4:ec9b/64 scope link 10:47:13 valid_lft forever preferred_lft forever 10:47:13 3: docker0: mtu 1458 qdisc noqueue state DOWN group default 10:47:13 link/ether 02:42:8f:a7:87:a5 brd ff:ff:ff:ff:ff:ff 10:47:13 inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 10:47:13 valid_lft forever preferred_lft forever 10:47:13 10:47:13 10:47:13 ---> sar -b -r -n DEV: 10:47:13 Linux 5.4.0-190-generic (prd-ubuntu2004-docker-4c-16g-43706) 10/18/24 _x86_64_ (4 CPU) 10:47:13 10:47:13 08:59:07 LINUX RESTART (4 CPU) 10:47:13 10:47:13 09:00:02 tps rtps wtps dtps bread/s bwrtn/s bdscd/s 10:47:13 09:01:01 141.48 53.09 88.39 0.00 1496.83 11446.48 0.00 10:47:13 09:02:01 227.89 40.79 187.10 0.00 2667.64 39016.19 0.00 10:47:13 09:03:01 79.34 2.00 77.34 0.00 134.36 30360.28 0.00 10:47:13 09:04:01 171.53 3.53 168.00 0.00 156.93 133950.13 0.00 10:47:13 09:05:01 212.41 13.45 198.97 0.00 4819.59 84643.12 0.00 10:47:13 09:06:01 131.84 2.20 129.64 0.00 72.78 13061.51 0.00 10:47:13 09:07:01 91.82 1.83 89.99 0.00 213.56 1719.71 0.00 10:47:13 09:08:01 95.87 0.17 95.70 0.00 26.53 1465.89 0.00 10:47:13 09:09:01 133.58 0.35 133.23 0.00 57.59 10777.40 0.00 10:47:13 09:10:01 92.94 0.05 92.89 0.00 0.40 1518.03 0.00 10:47:13 09:11:01 2.57 0.00 2.57 0.00 0.00 58.39 0.00 10:47:13 09:12:01 2.73 0.00 2.73 0.00 0.00 48.13 0.00 10:47:13 09:13:01 16.58 0.00 16.58 0.00 0.00 285.82 0.00 10:47:13 09:14:01 63.25 0.00 63.25 0.00 0.00 1198.27 0.00 10:47:13 09:15:01 3.33 0.87 2.47 0.00 16.53 32.13 0.00 10:47:13 09:16:01 15.96 0.00 15.96 0.00 0.00 259.16 0.00 10:47:13 09:17:01 57.11 0.03 57.08 0.00 0.93 913.16 0.00 10:47:13 09:18:01 97.25 0.03 97.22 0.00 0.40 1395.90 0.00 10:47:13 09:19:01 2.75 0.00 2.75 0.00 0.00 58.51 0.00 10:47:13 09:20:01 4.33 0.00 4.33 0.00 0.00 72.79 0.00 10:47:13 09:21:01 15.98 2.32 13.66 0.00 425.86 1551.48 0.00 10:47:13 09:22:01 155.59 0.02 155.57 0.00 0.13 9706.78 0.00 10:47:13 09:23:02 2.85 0.00 2.85 0.00 0.00 54.12 0.00 10:47:13 09:24:01 2.20 0.00 2.20 0.00 0.00 39.99 0.00 10:47:13 09:25:01 72.56 0.00 72.56 0.00 0.00 1263.05 0.00 10:47:13 09:26:01 4.07 0.00 4.07 0.00 0.00 73.99 0.00 10:47:13 09:27:01 71.27 0.00 71.27 0.00 0.00 1043.83 0.00 10:47:13 09:28:01 24.18 0.08 24.10 0.00 0.67 864.92 0.00 10:47:13 09:29:01 147.36 0.00 147.36 0.00 0.00 6386.27 0.00 10:47:13 09:30:01 2.35 0.00 2.35 0.00 0.00 45.73 0.00 10:47:13 09:31:01 2.40 0.00 2.40 0.00 0.00 33.99 0.00 10:47:13 09:32:01 2.35 0.00 2.35 0.00 0.00 32.39 0.00 10:47:13 09:33:01 39.95 0.00 39.95 0.00 0.00 643.92 0.00 10:47:13 09:34:01 127.60 0.07 127.53 0.00 2.13 2161.37 0.00 10:47:13 09:35:01 3.68 0.00 3.68 0.00 0.00 71.99 0.00 10:47:13 09:36:01 15.69 0.00 15.69 0.00 0.00 260.05 0.00 10:47:13 09:37:01 51.65 0.00 51.65 0.00 0.00 844.39 0.00 10:47:13 09:38:01 64.67 0.00 64.67 0.00 0.00 844.39 0.00 10:47:13 09:39:01 15.43 0.00 15.43 0.00 0.00 251.96 0.00 10:47:13 09:40:01 128.76 0.00 128.76 0.00 0.00 1856.89 0.00 10:47:13 09:41:01 3.17 0.00 3.17 0.00 0.00 57.19 0.00 10:47:13 09:42:01 59.91 0.00 59.91 0.00 0.00 886.77 0.00 10:47:13 09:43:01 16.33 0.00 16.33 0.00 0.00 275.82 0.00 10:47:13 09:44:01 55.38 0.00 55.38 0.00 0.00 794.00 0.00 10:47:13 09:45:01 2.68 0.00 2.68 0.00 0.00 55.86 0.00 10:47:13 09:46:01 2.37 0.00 2.37 0.00 0.00 49.72 0.00 10:47:13 09:47:01 2.70 0.00 2.70 0.00 0.00 53.72 0.00 10:47:13 09:48:01 1.93 0.00 1.93 0.00 0.00 25.06 0.00 10:47:13 09:49:01 15.45 0.03 15.41 0.00 5.33 247.69 0.00 10:47:13 09:50:01 59.57 0.00 59.57 0.00 0.00 853.86 0.00 10:47:13 09:51:01 2.08 0.00 2.08 0.00 0.00 51.46 0.00 10:47:13 09:52:01 1.98 0.00 1.98 0.00 0.00 37.72 0.00 10:47:13 09:53:01 1.77 0.00 1.77 0.00 0.00 30.53 0.00 10:47:13 09:54:01 3.03 0.00 3.03 0.00 0.00 59.46 0.00 10:47:13 09:55:01 1.90 0.00 1.90 0.00 0.00 43.99 0.00 10:47:13 09:56:01 2.85 0.00 2.85 0.00 0.00 44.79 0.00 10:47:13 09:57:01 1.92 0.00 1.92 0.00 0.00 35.33 0.00 10:47:13 09:58:01 1.98 0.00 1.98 0.00 0.00 33.06 0.00 10:47:13 09:59:01 1.45 0.00 1.45 0.00 0.00 18.80 0.00 10:47:13 10:00:01 1.57 0.00 1.57 0.00 0.00 21.46 0.00 10:47:13 10:01:01 86.30 0.00 86.30 0.00 0.00 1245.18 0.00 10:47:13 10:02:01 2.67 0.00 2.67 0.00 0.00 71.59 0.00 10:47:13 10:03:01 2.50 0.00 2.50 0.00 0.00 56.12 0.00 10:47:13 10:04:01 2.93 0.00 2.93 0.00 0.00 56.11 0.00 10:47:13 10:05:01 3.02 0.00 3.02 0.00 0.00 63.32 0.00 10:47:13 10:06:01 3.40 0.00 3.40 0.00 0.00 66.26 0.00 10:47:13 10:07:01 2.65 0.00 2.65 0.00 0.00 67.86 0.00 10:47:13 10:08:01 3.02 0.00 3.02 0.00 0.00 56.26 0.00 10:47:13 10:09:01 1.58 0.00 1.58 0.00 0.00 20.53 0.00 10:47:13 10:10:01 2.42 0.00 2.42 0.00 0.00 31.06 0.00 10:47:13 10:11:01 27.13 0.00 27.13 0.00 0.00 418.60 0.00 10:47:13 10:12:01 62.97 0.00 62.97 0.00 0.00 907.05 0.00 10:47:13 10:13:01 3.05 0.00 3.05 0.00 0.00 65.59 0.00 10:47:13 10:14:01 3.93 0.00 3.93 0.00 0.00 72.11 0.00 10:47:13 10:15:01 1.87 0.00 1.87 0.00 0.00 33.99 0.00 10:47:13 10:16:01 3.68 0.00 3.68 0.00 0.00 66.52 0.00 10:47:13 10:17:01 2.43 0.00 2.43 0.00 0.00 44.53 0.00 10:47:13 10:18:01 4.07 0.00 4.07 0.00 0.00 72.25 0.00 10:47:13 10:19:01 16.95 0.00 16.95 0.00 0.00 276.49 0.00 10:47:13 10:20:01 72.23 0.00 72.23 0.00 0.00 1031.92 0.00 10:47:13 10:21:01 3.15 0.00 3.15 0.00 0.00 171.04 0.00 10:47:13 10:22:01 2.35 0.00 2.35 0.00 0.00 57.99 0.00 10:47:13 10:23:01 1.82 0.00 1.82 0.00 0.00 33.86 0.00 10:47:13 10:24:01 2.37 0.00 2.37 0.00 0.00 44.93 0.00 10:47:13 10:25:01 2.13 0.00 2.13 0.00 0.00 35.19 0.00 10:47:13 10:26:01 2.28 0.00 2.28 0.00 0.00 46.53 0.00 10:47:13 10:27:01 2.13 0.00 2.13 0.00 0.00 40.53 0.00 10:47:13 10:28:01 2.23 0.00 2.23 0.00 0.00 41.19 0.00 10:47:13 10:29:01 11.68 0.00 11.68 0.00 0.00 720.28 0.00 10:47:13 10:30:01 97.10 0.00 97.10 0.00 0.00 9276.64 0.00 10:47:13 10:31:01 2.85 0.00 2.85 0.00 0.00 131.04 0.00 10:47:13 10:32:01 24.73 0.00 24.73 0.00 0.00 605.77 0.00 10:47:13 10:33:01 50.17 0.00 50.17 0.00 0.00 740.28 0.00 10:47:13 10:34:01 3.00 0.00 3.00 0.00 0.00 50.12 0.00 10:47:13 10:35:01 2.08 0.00 2.08 0.00 0.00 42.66 0.00 10:47:13 10:36:01 3.45 0.00 3.45 0.00 0.00 55.59 0.00 10:47:13 10:37:01 2.30 0.00 2.30 0.00 0.00 44.79 0.00 10:47:13 10:38:01 2.68 0.00 2.68 0.00 0.00 51.59 0.00 10:47:13 10:39:01 22.95 0.00 22.95 0.00 0.00 374.34 0.00 10:47:13 10:40:01 47.56 0.00 47.56 0.00 0.00 705.08 0.00 10:47:13 10:41:01 2.93 0.00 2.93 0.00 0.00 168.77 0.00 10:47:13 10:42:01 2.08 0.00 2.08 0.00 0.00 59.86 0.00 10:47:13 10:43:01 1.77 0.00 1.77 0.00 0.00 47.73 0.00 10:47:13 10:44:01 1.75 0.00 1.75 0.00 0.00 31.33 0.00 10:47:13 10:45:01 1.52 0.00 1.52 0.00 0.00 20.53 0.00 10:47:13 10:46:01 1.83 0.00 1.83 0.00 0.00 30.26 0.00 10:47:13 10:47:01 55.65 11.93 43.72 0.00 441.15 7846.67 0.00 10:47:13 Average: 32.70 1.23 31.47 0.00 98.25 3645.25 0.00 10:47:13 10:47:13 09:00:02 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 10:47:13 09:01:01 13246808 15418556 553832 3.38 75796 2284564 1317372 7.56 819300 2023736 142908 10:47:13 09:02:01 10570164 14363720 1592496 9.72 137024 3724004 2366148 13.58 2066148 3314260 623968 10:47:13 09:03:01 9929904 15234452 723220 4.41 161660 5139620 1580496 9.07 1518640 4434132 1228472 10:47:13 09:04:01 6593556 14724564 1231432 7.52 201304 7800260 2451772 14.07 2923376 6236600 1254592 10:47:13 09:05:01 4659972 14070440 1874632 11.44 225172 9015028 2700696 15.49 4105980 6928780 330068 10:47:13 09:06:01 166592 9059308 6882676 42.02 224968 8508800 8152984 46.78 9000708 6518860 196 10:47:13 09:07:01 472808 8891428 7050420 43.04 226948 8037636 8371580 48.03 9154496 6062284 1704 10:47:13 09:08:01 5732284 14135984 1808360 11.04 230388 8019412 2671936 15.33 3935240 6041312 1156 10:47:13 09:09:01 2763576 11411680 4531360 27.66 240056 8247308 6468644 37.11 6713488 6216748 1608 10:47:13 09:10:01 718216 9370844 6571116 40.11 243640 8248020 7516936 43.13 8756900 6209372 136 10:47:13 09:11:01 533068 9186212 6755564 41.24 243656 8248512 7647280 43.87 8942420 6209412 140 10:47:13 09:12:01 519388 9172848 6768892 41.32 243676 8248812 7647280 43.87 8955024 6209644 256 10:47:13 09:13:01 2311308 10965160 4977108 30.38 243724 8249052 5753216 33.01 7178184 6200088 644 10:47:13 09:14:01 625364 9281264 6660416 40.66 245380 8249368 7572196 43.44 8870068 6189312 108 10:47:13 09:15:01 622008 9278376 6663248 40.68 245456 8249808 7591888 43.56 8869008 6189248 116 10:47:13 09:16:01 4082828 12739244 3203392 19.56 245484 8249800 4201164 24.10 5432460 6180596 484 10:47:13 09:17:01 2452408 11110424 4832300 29.50 246160 8250620 6380644 36.61 7070188 6170512 616 10:47:13 09:18:01 172552 8395964 7544860 46.06 249112 7819228 8852292 50.79 9731736 5783704 524 10:47:13 09:19:01 158284 8381948 7558836 46.14 249136 7819436 8868284 50.88 9746060 5783812 84 10:47:13 09:20:01 154176 8378092 7562704 46.17 249164 7819644 8868284 50.88 9749520 5784020 104 10:47:13 09:21:01 2864112 11314864 4626720 28.24 255200 8034020 5686984 32.63 6873736 5952848 207052 10:47:13 09:22:01 1846856 10305268 5636360 34.41 257668 8038880 6682840 38.34 7929824 5910924 404 10:47:13 09:23:02 1817184 10275788 5665824 34.59 257704 8039032 6715800 38.53 7959136 5910384 40 10:47:13 09:24:01 1801916 10260668 5680932 34.68 257728 8039160 6715800 38.53 7974528 5910480 188 10:47:13 09:25:01 901724 9362048 6579220 40.16 258984 8039392 7477756 42.90 8879952 5899532 244 10:47:13 09:26:01 887096 9347616 6593704 40.25 259000 8039572 7509796 43.09 8896104 5899696 44 10:47:13 09:27:01 1733900 10195552 5746004 35.08 259908 8039716 6671752 38.28 8053824 5898988 436 10:47:13 09:28:01 2465512 11064572 4876704 29.77 264348 8159920 6182576 35.47 7194404 6016580 124548 10:47:13 09:29:01 1428872 10029896 5911276 36.09 265488 8160676 7348548 42.16 8229632 6016200 184 10:47:13 09:30:01 1092928 9694044 6246900 38.13 265508 8160812 7448088 42.73 8563796 6016320 88 10:47:13 09:31:01 1631384 10232484 5708376 34.85 265520 8160764 6796004 38.99 8026344 6016276 280 10:47:13 09:32:01 1629912 10231036 5709784 34.86 265540 8160772 6796004 38.99 8028092 6016276 76 10:47:13 09:33:01 5043928 13645752 2297112 14.02 265736 8161276 3313292 19.01 4633240 6010544 528 10:47:13 09:34:01 1895340 10499540 5441696 33.22 267324 8161968 7259984 41.65 7781328 6001644 740 10:47:13 09:35:01 171044 8755308 7184900 43.86 267336 8142460 8811048 50.55 9508064 5992176 292 10:47:13 09:36:01 3503692 11955872 3985500 24.33 267356 8012536 5395300 30.95 6307076 5872824 364 10:47:13 09:37:01 3604256 12057268 3884084 23.71 267840 8012996 5370864 30.81 6206960 5872384 276 10:47:13 09:38:01 2264368 10718144 5223280 31.89 268152 8013252 6612816 37.94 7541196 5872620 92 10:47:13 09:39:01 3413084 11866952 4074548 24.87 268176 8013312 5518768 31.66 6397140 5872496 380 10:47:13 09:40:01 2264472 10720084 5221164 31.87 269160 8014048 6601044 37.87 7540624 5873036 200 10:47:13 09:41:01 2224108 10679828 5261336 32.12 269168 8014148 6649416 38.15 7581244 5873140 348 10:47:13 09:42:01 1435036 9891436 6049264 36.93 269488 8014512 7408364 42.50 8369452 5873420 512 10:47:13 09:43:01 2792808 11249520 4691744 28.64 269508 8014800 6452200 37.02 7015252 5873644 648 10:47:13 09:44:01 240288 8697768 7242284 44.21 269992 8015088 8763400 50.28 9559444 5873920 252 10:47:13 09:45:01 169956 8513492 7426416 45.33 269992 7903088 8845420 50.75 9733608 5770060 236 10:47:13 09:46:01 163648 8507384 7432488 45.37 269996 7903268 8845420 50.75 9740304 5770240 344 10:47:13 09:47:01 3193216 11537336 4403312 26.88 270004 7903552 5270924 30.24 6718216 5770396 216 10:47:13 09:48:01 3193328 11537456 4403192 26.88 270008 7903556 5270924 30.24 6717916 5770400 56 10:47:13 09:49:01 6476924 14821232 1122604 6.85 270008 7903728 1948336 11.18 3450788 5770404 340 10:47:13 09:50:01 3235448 11580340 4361768 26.63 270240 7904064 5207788 29.88 6678424 5770732 424 10:47:13 09:51:01 3128188 11473456 4468488 27.28 270244 7904436 5272716 30.25 6784328 5771104 348 10:47:13 09:52:01 3120912 11466288 4475648 27.32 270244 7904544 5272716 30.25 6791480 5771212 72 10:47:13 09:53:01 3105340 11450860 4491064 27.42 270244 7904696 5288708 30.34 6807288 5771356 100 10:47:13 09:54:01 3088024 11434004 4507908 27.52 270252 7905140 5304716 30.43 6823576 5771808 212 10:47:13 09:55:01 3063328 11409532 4532356 27.67 270252 7905376 5337280 30.62 6848916 5772028 96 10:47:13 09:56:01 3036356 11382676 4559188 27.83 270252 7905480 5353400 30.71 6874276 5772144 288 10:47:13 09:57:01 3028520 11375144 4566668 27.88 270252 7905784 5369396 30.81 6882436 5772448 280 10:47:13 09:58:01 3028584 11375232 4566580 27.88 270256 7905800 5369396 30.81 6881944 5772464 232 10:47:13 09:59:01 3028112 11374888 4566908 27.88 270260 7905928 5369396 30.81 6881704 5772592 52 10:47:13 10:00:01 3028552 11375344 4566440 27.88 270268 7905932 5369396 30.81 6881764 5772596 84 10:47:13 10:01:01 3362676 11709892 4232300 25.84 270556 7906060 5109244 29.31 6549128 5772604 600 10:47:13 10:02:01 3156332 11504180 4437708 27.09 270560 7906684 5223860 29.97 6754156 5773232 108 10:47:13 10:03:01 3137612 11485948 4455928 27.20 270564 7907168 5239880 30.06 6771904 5773716 244 10:47:13 10:04:01 3115972 11464804 4477020 27.33 270568 7907680 5255904 30.15 6792480 5774208 376 10:47:13 10:05:01 3106780 11455980 4485868 27.38 270572 7908020 5255904 30.15 6801212 5774572 52 10:47:13 10:06:01 3100536 11450196 4491712 27.42 270572 7908492 5271896 30.25 6807536 5775028 292 10:47:13 10:07:01 3059632 11410144 4531640 27.66 270572 7909332 5304764 30.43 6846020 5775864 260 10:47:13 10:08:01 3051220 11402040 4539728 27.71 270572 7909592 5304764 30.43 6855576 5776136 104 10:47:13 10:09:01 3051640 11402460 4539296 27.71 270572 7909592 5304764 30.43 6854448 5776136 60 10:47:13 10:10:01 3051088 11401912 4539792 27.71 270572 7909596 5304764 30.43 6854868 5776140 56 10:47:13 10:11:01 4915356 13266424 2676644 16.34 270660 7909736 3756952 21.55 5000996 5776280 716 10:47:13 10:12:01 1692000 10043120 5898232 36.01 270944 7909504 6751632 38.74 8213736 5776032 144 10:47:13 10:13:01 1513904 9865488 6075576 37.09 270964 7909948 6865924 39.39 8391128 5776476 448 10:47:13 10:14:01 1438468 9790364 6150628 37.55 270972 7910252 6914584 39.67 8465960 5776780 48 10:47:13 10:15:01 1426112 9778136 6162820 37.62 270972 7910380 6914584 39.67 8477984 5776908 368 10:47:13 10:16:01 1389736 9742108 6198752 37.84 270976 7910728 6930600 39.76 8512748 5777256 40 10:47:13 10:17:01 1379768 9732356 6208508 37.90 270984 7910932 6946620 39.85 8522896 5777468 348 10:47:13 10:18:01 1359496 9712524 6228420 38.02 270996 7911332 6995032 40.13 8542616 5777844 300 10:47:13 10:19:01 6468204 14821380 1122524 6.85 271004 7911468 1957344 11.23 3451816 5777960 196 10:47:13 10:20:01 1861692 10215136 5726312 34.96 271204 7911536 6712680 38.51 8042540 5778020 600 10:47:13 10:21:01 1681076 10034712 5906544 36.06 271204 7911724 6776800 38.88 8222764 5778212 312 10:47:13 10:22:01 1429136 9783480 6157484 37.59 271204 7912436 6924572 39.73 8472784 5778920 208 10:47:13 10:23:01 1417584 9772040 6169024 37.66 271204 7912544 6924572 39.73 8484308 5779032 224 10:47:13 10:24:01 1405960 9760516 6180536 37.73 271204 7912644 6940572 39.82 8495868 5779132 176 10:47:13 10:25:01 1399060 9753788 6187220 37.77 271204 7912828 6940572 39.82 8501932 5779304 172 10:47:13 10:26:01 1385296 9740244 6200736 37.85 271204 7913044 6940572 39.82 8516128 5779524 216 10:47:13 10:27:01 1338832 9693968 6246980 38.13 271204 7913232 6974132 40.01 8562036 5779712 172 10:47:13 10:28:01 1328168 9683556 6257340 38.20 271208 7913480 6990124 40.10 8571828 5779960 460 10:47:13 10:29:01 6846064 15267976 676008 4.13 273332 7973528 1778312 10.20 3010672 5838816 50132 10:47:13 10:30:01 2850080 11450200 4491360 27.42 277484 8140568 5272528 30.25 6875052 5949052 2844 10:47:13 10:31:01 2755444 11355660 4585820 27.99 277484 8140704 5328968 30.57 6969048 5949056 236 10:47:13 10:32:01 4224504 12825252 3116960 19.03 277524 8141084 4206980 24.14 5523096 5931000 1056 10:47:13 10:33:01 2815736 11417024 4524264 27.62 277720 8141428 5306136 30.44 6931192 5927760 168 10:47:13 10:34:01 2806004 11407508 4533808 27.68 277728 8141636 5306136 30.44 6940028 5927912 228 10:47:13 10:35:01 2788468 11390164 4551104 27.78 277740 8141816 5306136 30.44 6958148 5928084 128 10:47:13 10:36:01 2783544 11385428 4555916 27.81 277744 8141996 5306136 30.44 6962516 5928260 24 10:47:13 10:37:01 2759956 11362128 4579080 27.95 277752 8142260 5322844 30.54 6983540 5928528 76 10:47:13 10:38:01 2734316 11336820 4604492 28.11 277752 8142588 5338848 30.63 7010344 5928836 76 10:47:13 10:39:01 4885408 13488220 2454388 14.98 277784 8142844 3553788 20.39 4877660 5918068 604 10:47:13 10:40:01 2167848 10770872 5170156 31.56 277896 8142912 5952148 34.15 7584844 5918068 380 10:47:13 10:41:01 2090072 10693708 5247220 32.03 277900 8143476 6021448 34.55 7660780 5918476 420 10:47:13 10:42:01 2020732 10625120 5315780 32.45 277900 8144216 6037444 34.64 7729320 5919212 96 10:47:13 10:43:01 1965332 10570380 5370568 32.78 277904 8144860 6053480 34.73 7783096 5919856 252 10:47:13 10:44:01 1965932 10570996 5369952 32.78 277912 8144868 6053480 34.73 7782708 5919864 92 10:47:13 10:45:01 1965908 10570976 5369960 32.78 277912 8144868 6069520 34.82 7782752 5919864 36 10:47:13 10:46:01 2912856 11517832 4423612 27.00 277916 8144772 5197348 29.82 6839404 5919760 168 10:47:13 10:47:01 6490628 15366860 576788 3.52 286060 8391564 1304676 7.49 3042360 6137932 55328 10:47:13 Average: 2695137 11032584 4909711 29.97 261392 7912602 5881453 33.74 7165143 5830240 37842 10:47:13 10:47:13 09:00:02 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 10:47:13 09:01:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:01:01 ens3 74.65 60.97 790.96 8.17 0.00 0.00 0.00 0.00 10:47:13 09:01:01 lo 0.81 0.81 0.08 0.08 0.00 0.00 0.00 0.00 10:47:13 09:02:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:02:01 ens3 473.08 379.14 7230.13 41.29 0.00 0.00 0.00 0.00 10:47:13 09:02:01 lo 6.20 6.20 0.63 0.63 0.00 0.00 0.00 0.00 10:47:13 09:03:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:03:01 ens3 278.71 220.73 3904.31 23.65 0.00 0.00 0.00 0.00 10:47:13 09:03:01 lo 0.73 0.73 0.07 0.07 0.00 0.00 0.00 0.00 10:47:13 09:04:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:04:01 ens3 209.42 114.30 3937.57 11.75 0.00 0.00 0.00 0.00 10:47:13 09:04:01 lo 1.00 1.00 0.09 0.09 0.00 0.00 0.00 0.00 10:47:13 09:05:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:05:01 ens3 129.06 59.83 2078.69 4.39 0.00 0.00 0.00 0.00 10:47:13 09:05:01 lo 5.13 5.13 0.52 0.52 0.00 0.00 0.00 0.00 10:47:13 09:06:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:06:01 ens3 1.62 1.43 0.24 0.22 0.00 0.00 0.00 0.00 10:47:13 09:06:01 lo 17.68 17.68 25.95 25.95 0.00 0.00 0.00 0.00 10:47:13 09:07:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:07:01 ens3 1.43 1.23 0.26 0.24 0.00 0.00 0.00 0.00 10:47:13 09:07:01 lo 41.81 41.81 28.60 28.60 0.00 0.00 0.00 0.00 10:47:13 09:08:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:08:01 ens3 1.18 1.03 0.21 0.19 0.00 0.00 0.00 0.00 10:47:13 09:08:01 lo 36.23 36.23 17.39 17.39 0.00 0.00 0.00 0.00 10:47:13 09:09:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:09:01 ens3 1.98 2.23 0.81 0.73 0.00 0.00 0.00 0.00 10:47:13 09:09:01 lo 4.72 4.72 1.07 1.07 0.00 0.00 0.00 0.00 10:47:13 09:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:10:01 ens3 0.78 0.63 0.22 0.15 0.00 0.00 0.00 0.00 10:47:13 09:10:01 lo 23.31 23.31 23.46 23.46 0.00 0.00 0.00 0.00 10:47:13 09:11:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:11:01 ens3 0.35 0.30 0.06 0.06 0.00 0.00 0.00 0.00 10:47:13 09:11:01 lo 19.15 19.15 11.64 11.64 0.00 0.00 0.00 0.00 10:47:13 09:12:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:12:01 ens3 0.37 0.27 0.05 0.04 0.00 0.00 0.00 0.00 10:47:13 09:12:01 lo 19.73 19.73 8.64 8.64 0.00 0.00 0.00 0.00 10:47:13 09:13:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:13:01 ens3 1.68 1.18 0.29 0.24 0.00 0.00 0.00 0.00 10:47:13 09:13:01 lo 24.01 24.01 7.99 7.99 0.00 0.00 0.00 0.00 10:47:13 09:14:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:14:01 ens3 1.45 0.83 0.63 0.46 0.00 0.00 0.00 0.00 10:47:13 09:14:01 lo 5.95 5.95 2.66 2.66 0.00 0.00 0.00 0.00 10:47:13 09:15:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:15:01 ens3 0.45 0.25 0.15 0.07 0.00 0.00 0.00 0.00 10:47:13 09:15:01 lo 0.13 0.13 0.01 0.01 0.00 0.00 0.00 0.00 10:47:13 09:16:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:16:01 ens3 0.40 0.35 0.04 0.04 0.00 0.00 0.00 0.00 10:47:13 09:16:01 lo 1.32 1.32 0.12 0.12 0.00 0.00 0.00 0.00 10:47:13 09:17:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:17:01 ens3 1.03 0.97 0.13 0.13 0.00 0.00 0.00 0.00 10:47:13 09:17:01 lo 14.36 14.36 3.39 3.39 0.00 0.00 0.00 0.00 10:47:13 09:18:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:18:01 ens3 0.85 0.95 0.13 0.14 0.00 0.00 0.00 0.00 10:47:13 09:18:01 lo 40.71 40.71 16.18 16.18 0.00 0.00 0.00 0.00 10:47:13 09:19:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:19:01 ens3 0.87 1.17 0.18 0.19 0.00 0.00 0.00 0.00 10:47:13 09:19:01 lo 8.51 8.51 6.08 6.08 0.00 0.00 0.00 0.00 10:47:13 09:20:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:20:01 ens3 1.30 1.42 0.34 0.29 0.00 0.00 0.00 0.00 10:47:13 09:20:01 lo 11.10 11.10 8.19 8.19 0.00 0.00 0.00 0.00 10:47:13 09:21:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:21:01 ens3 2.08 2.30 0.89 0.79 0.00 0.00 0.00 0.00 10:47:13 09:21:01 lo 35.44 35.44 12.81 12.81 0.00 0.00 0.00 0.00 10:47:13 09:22:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:22:01 ens3 1.08 0.87 0.16 0.15 0.00 0.00 0.00 0.00 10:47:13 09:22:01 lo 12.80 12.80 19.30 19.30 0.00 0.00 0.00 0.00 10:47:13 09:23:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:23:02 ens3 1.12 0.95 0.22 0.20 0.00 0.00 0.00 0.00 10:47:13 09:23:02 lo 25.96 25.96 8.64 8.64 0.00 0.00 0.00 0.00 10:47:13 09:24:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:24:01 ens3 1.34 1.15 0.26 0.23 0.00 0.00 0.00 0.00 10:47:13 09:24:01 lo 26.66 26.66 8.42 8.42 0.00 0.00 0.00 0.00 10:47:13 09:25:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:25:01 ens3 1.23 1.10 0.30 0.23 0.00 0.00 0.00 0.00 10:47:13 09:25:01 lo 23.86 23.86 15.06 15.06 0.00 0.00 0.00 0.00 10:47:13 09:26:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:26:01 ens3 1.23 1.60 0.24 0.26 0.00 0.00 0.00 0.00 10:47:13 09:26:01 lo 31.66 31.66 10.46 10.46 0.00 0.00 0.00 0.00 10:47:13 09:27:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:27:01 ens3 0.80 1.02 0.15 0.16 0.00 0.00 0.00 0.00 10:47:13 09:27:01 lo 19.16 19.16 8.20 8.20 0.00 0.00 0.00 0.00 10:47:13 09:28:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:28:01 ens3 4.10 5.58 1.79 1.66 0.00 0.00 0.00 0.00 10:47:13 09:28:01 lo 37.09 37.09 13.32 13.32 0.00 0.00 0.00 0.00 10:47:13 09:29:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:29:01 ens3 0.93 0.92 0.11 0.11 0.00 0.00 0.00 0.00 10:47:13 09:29:01 lo 10.58 10.58 3.10 3.10 0.00 0.00 0.00 0.00 10:47:13 09:30:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:30:01 ens3 1.35 1.62 0.35 0.30 0.00 0.00 0.00 0.00 10:47:13 09:30:01 lo 13.50 13.50 9.93 9.93 0.00 0.00 0.00 0.00 10:47:13 09:31:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:31:01 ens3 0.15 0.08 0.01 0.01 0.00 0.00 0.00 0.00 10:47:13 09:31:01 lo 0.30 0.30 0.03 0.03 0.00 0.00 0.00 0.00 10:47:13 09:32:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:32:01 ens3 1.13 0.50 0.33 0.23 0.00 0.00 0.00 0.00 10:47:13 09:32:01 lo 0.57 0.57 0.05 0.05 0.00 0.00 0.00 0.00 10:47:13 09:33:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:33:01 ens3 6.90 6.48 1.72 3.75 0.00 0.00 0.00 0.00 10:47:13 09:33:01 lo 19.46 19.46 6.01 6.01 0.00 0.00 0.00 0.00 10:47:13 09:34:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:34:01 ens3 1.72 1.70 0.29 0.28 0.00 0.00 0.00 0.00 10:47:13 09:34:01 lo 15.85 15.85 4.89 4.89 0.00 0.00 0.00 0.00 10:47:13 09:35:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:35:01 ens3 1.70 2.18 0.39 0.40 0.00 0.00 0.00 0.00 10:47:13 09:35:01 lo 19.30 19.30 8.16 8.16 0.00 0.00 0.00 0.00 10:47:13 09:36:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:36:01 ens3 1.15 1.57 0.28 0.24 0.00 0.00 0.00 0.00 10:47:13 09:36:01 lo 16.43 16.43 6.60 6.60 0.00 0.00 0.00 0.00 10:47:13 09:37:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:37:01 ens3 0.78 0.85 0.13 0.13 0.00 0.00 0.00 0.00 10:47:13 09:37:01 lo 4.73 4.73 6.26 6.26 0.00 0.00 0.00 0.00 10:47:13 09:38:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:38:01 ens3 0.50 0.52 0.07 0.07 0.00 0.00 0.00 0.00 10:47:13 09:38:01 lo 8.92 8.92 3.13 3.13 0.00 0.00 0.00 0.00 10:47:13 09:39:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:39:01 ens3 1.12 0.70 0.16 0.11 0.00 0.00 0.00 0.00 10:47:13 09:39:01 lo 3.60 3.60 0.60 0.60 0.00 0.00 0.00 0.00 10:47:13 09:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:40:01 ens3 1.22 1.07 0.53 0.40 0.00 0.00 0.00 0.00 10:47:13 09:40:01 lo 30.71 30.71 14.72 14.72 0.00 0.00 0.00 0.00 10:47:13 09:41:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:41:01 ens3 1.60 0.93 0.27 0.19 0.00 0.00 0.00 0.00 10:47:13 09:41:01 lo 19.88 19.88 8.50 8.50 0.00 0.00 0.00 0.00 10:47:13 09:42:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:42:01 ens3 1.05 0.87 0.39 0.32 0.00 0.00 0.00 0.00 10:47:13 09:42:01 lo 12.01 12.01 14.55 14.55 0.00 0.00 0.00 0.00 10:47:13 09:43:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:43:01 ens3 1.62 0.82 0.26 0.16 0.00 0.00 0.00 0.00 10:47:13 09:43:01 lo 12.03 12.03 5.59 5.59 0.00 0.00 0.00 0.00 10:47:13 09:44:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:44:01 ens3 0.98 0.87 0.16 0.15 0.00 0.00 0.00 0.00 10:47:13 09:44:01 lo 27.51 27.51 11.45 11.45 0.00 0.00 0.00 0.00 10:47:13 09:45:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:45:01 ens3 0.77 0.57 0.24 0.16 0.00 0.00 0.00 0.00 10:47:13 09:45:01 lo 47.39 47.39 14.77 14.77 0.00 0.00 0.00 0.00 10:47:13 09:46:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:46:01 ens3 0.53 0.43 0.09 0.08 0.00 0.00 0.00 0.00 10:47:13 09:46:01 lo 17.78 17.78 5.65 5.65 0.00 0.00 0.00 0.00 10:47:13 09:47:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:47:01 ens3 9.78 8.45 2.07 6.17 0.00 0.00 0.00 0.00 10:47:13 09:47:01 lo 0.12 0.12 0.01 0.01 0.00 0.00 0.00 0.00 10:47:13 09:48:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:48:01 ens3 0.28 0.10 0.01 0.01 0.00 0.00 0.00 0.00 10:47:13 09:48:01 lo 0.20 0.20 0.01 0.01 0.00 0.00 0.00 0.00 10:47:13 09:49:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:49:01 ens3 0.25 0.20 0.03 0.03 0.00 0.00 0.00 0.00 10:47:13 09:49:01 lo 0.92 0.92 0.08 0.08 0.00 0.00 0.00 0.00 10:47:13 09:50:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:50:01 ens3 1.03 0.82 0.25 0.17 0.00 0.00 0.00 0.00 10:47:13 09:50:01 lo 16.43 16.43 15.32 15.32 0.00 0.00 0.00 0.00 10:47:13 09:51:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:51:01 ens3 0.52 0.43 0.10 0.09 0.00 0.00 0.00 0.00 10:47:13 09:51:01 lo 20.11 20.11 9.71 9.71 0.00 0.00 0.00 0.00 10:47:13 09:52:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:52:01 ens3 0.82 0.68 0.14 0.13 0.00 0.00 0.00 0.00 10:47:13 09:52:01 lo 9.48 9.48 5.61 5.61 0.00 0.00 0.00 0.00 10:47:13 09:53:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:53:01 ens3 0.50 0.35 0.09 0.07 0.00 0.00 0.00 0.00 10:47:13 09:53:01 lo 16.38 16.38 8.05 8.05 0.00 0.00 0.00 0.00 10:47:13 09:54:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:54:01 ens3 0.80 0.63 0.14 0.12 0.00 0.00 0.00 0.00 10:47:13 09:54:01 lo 31.14 31.14 12.28 12.28 0.00 0.00 0.00 0.00 10:47:13 09:55:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:55:01 ens3 0.47 0.28 0.17 0.10 0.00 0.00 0.00 0.00 10:47:13 09:55:01 lo 12.06 12.06 5.11 5.11 0.00 0.00 0.00 0.00 10:47:13 09:56:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:56:01 ens3 0.77 0.68 0.14 0.13 0.00 0.00 0.00 0.00 10:47:13 09:56:01 lo 14.06 14.06 6.36 6.36 0.00 0.00 0.00 0.00 10:47:13 09:57:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:57:01 ens3 0.45 0.33 0.07 0.07 0.00 0.00 0.00 0.00 10:47:13 09:57:01 lo 25.00 25.00 9.38 9.38 0.00 0.00 0.00 0.00 10:47:13 09:58:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:58:01 ens3 0.20 0.07 0.01 0.01 0.00 0.00 0.00 0.00 10:47:13 09:58:01 lo 0.33 0.33 0.02 0.02 0.00 0.00 0.00 0.00 10:47:13 09:59:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:59:01 ens3 0.12 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 09:59:01 lo 0.18 0.18 0.02 0.02 0.00 0.00 0.00 0.00 10:47:13 10:00:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:00:01 ens3 0.48 0.25 0.15 0.08 0.00 0.00 0.00 0.00 10:47:13 10:00:01 lo 0.37 0.37 0.03 0.03 0.00 0.00 0.00 0.00 10:47:13 10:01:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:01:01 ens3 0.85 0.87 0.13 0.13 0.00 0.00 0.00 0.00 10:47:13 10:01:01 lo 16.13 16.13 7.00 7.00 0.00 0.00 0.00 0.00 10:47:13 10:02:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:02:01 ens3 0.75 0.97 0.15 0.15 0.00 0.00 0.00 0.00 10:47:13 10:02:01 lo 37.99 37.99 12.40 12.40 0.00 0.00 0.00 0.00 10:47:13 10:03:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:03:01 ens3 0.37 0.27 0.05 0.05 0.00 0.00 0.00 0.00 10:47:13 10:03:01 lo 44.33 44.33 13.07 13.07 0.00 0.00 0.00 0.00 10:47:13 10:04:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:04:01 ens3 0.62 0.75 0.11 0.11 0.00 0.00 0.00 0.00 10:47:13 10:04:01 lo 29.77 29.77 9.38 9.38 0.00 0.00 0.00 0.00 10:47:13 10:05:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:05:01 ens3 62.71 37.38 43.57 29.16 0.00 0.00 0.00 0.00 10:47:13 10:05:01 lo 21.16 21.16 6.46 6.46 0.00 0.00 0.00 0.00 10:47:13 10:06:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:06:01 ens3 0.15 0.08 0.01 0.01 0.00 0.00 0.00 0.00 10:47:13 10:06:01 lo 33.14 33.14 9.14 9.14 0.00 0.00 0.00 0.00 10:47:13 10:07:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:07:01 ens3 0.17 0.08 0.01 0.01 0.00 0.00 0.00 0.00 10:47:13 10:07:01 lo 57.39 57.39 18.60 18.60 0.00 0.00 0.00 0.00 10:47:13 10:08:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:08:01 ens3 0.27 0.22 0.03 0.03 0.00 0.00 0.00 0.00 10:47:13 10:08:01 lo 23.61 23.61 6.78 6.78 0.00 0.00 0.00 0.00 10:47:13 10:09:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:09:01 ens3 0.15 0.00 0.01 0.00 0.00 0.00 0.00 0.00 10:47:13 10:09:01 lo 0.12 0.12 0.01 0.01 0.00 0.00 0.00 0.00 10:47:13 10:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:10:01 ens3 0.35 0.22 0.14 0.07 0.00 0.00 0.00 0.00 10:47:13 10:10:01 lo 0.40 0.40 0.04 0.04 0.00 0.00 0.00 0.00 10:47:13 10:11:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:11:01 ens3 0.47 0.35 0.06 0.05 0.00 0.00 0.00 0.00 10:47:13 10:11:01 lo 1.50 1.50 0.13 0.13 0.00 0.00 0.00 0.00 10:47:13 10:12:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:12:01 ens3 0.70 0.62 0.10 0.09 0.00 0.00 0.00 0.00 10:47:13 10:12:01 lo 22.56 22.56 22.55 22.55 0.00 0.00 0.00 0.00 10:47:13 10:13:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:13:01 ens3 0.77 0.57 0.14 0.11 0.00 0.00 0.00 0.00 10:47:13 10:13:01 lo 32.63 32.63 13.62 13.62 0.00 0.00 0.00 0.00 10:47:13 10:14:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:14:01 ens3 0.95 0.48 0.15 0.09 0.00 0.00 0.00 0.00 10:47:13 10:14:01 lo 16.86 16.86 7.14 7.14 0.00 0.00 0.00 0.00 10:47:13 10:15:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:15:01 ens3 1.33 1.30 0.59 0.48 0.00 0.00 0.00 0.00 10:47:13 10:15:01 lo 11.33 11.33 4.78 4.78 0.00 0.00 0.00 0.00 10:47:13 10:16:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:16:01 ens3 0.68 0.75 0.11 0.11 0.00 0.00 0.00 0.00 10:47:13 10:16:01 lo 36.53 36.53 14.37 14.37 0.00 0.00 0.00 0.00 10:47:13 10:17:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:17:01 ens3 0.57 0.72 0.11 0.12 0.00 0.00 0.00 0.00 10:47:13 10:17:01 lo 19.01 19.01 6.46 6.46 0.00 0.00 0.00 0.00 10:47:13 10:18:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:18:01 ens3 0.55 0.55 0.08 0.08 0.00 0.00 0.00 0.00 10:47:13 10:18:01 lo 21.46 21.46 9.01 9.01 0.00 0.00 0.00 0.00 10:47:13 10:19:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:19:01 ens3 0.67 0.85 0.12 0.15 0.00 0.00 0.00 0.00 10:47:13 10:19:01 lo 19.86 19.86 7.91 7.91 0.00 0.00 0.00 0.00 10:47:13 10:20:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:20:01 ens3 0.98 0.97 0.23 0.17 0.00 0.00 0.00 0.00 10:47:13 10:20:01 lo 16.88 16.88 20.25 20.25 0.00 0.00 0.00 0.00 10:47:13 10:21:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:21:01 ens3 0.65 0.87 0.13 0.14 0.00 0.00 0.00 0.00 10:47:13 10:21:01 lo 25.16 25.16 9.18 9.18 0.00 0.00 0.00 0.00 10:47:13 10:22:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:22:01 ens3 0.50 0.50 0.07 0.07 0.00 0.00 0.00 0.00 10:47:13 10:22:01 lo 32.44 32.44 17.04 17.04 0.00 0.00 0.00 0.00 10:47:13 10:23:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:23:01 ens3 0.48 0.52 0.09 0.08 0.00 0.00 0.00 0.00 10:47:13 10:23:01 lo 8.32 8.32 5.33 5.33 0.00 0.00 0.00 0.00 10:47:13 10:24:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:24:01 ens3 1.15 1.03 0.20 0.16 0.00 0.00 0.00 0.00 10:47:13 10:24:01 lo 15.50 15.50 8.86 8.86 0.00 0.00 0.00 0.00 10:47:13 10:25:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:25:01 ens3 1.03 0.87 0.51 0.38 0.00 0.00 0.00 0.00 10:47:13 10:25:01 lo 14.61 14.61 8.01 8.01 0.00 0.00 0.00 0.00 10:47:13 10:26:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:26:01 ens3 0.55 0.35 0.08 0.06 0.00 0.00 0.00 0.00 10:47:13 10:26:01 lo 11.40 11.40 5.99 5.99 0.00 0.00 0.00 0.00 10:47:13 10:27:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:27:01 ens3 0.55 0.52 0.11 0.10 0.00 0.00 0.00 0.00 10:47:13 10:27:01 lo 23.53 23.53 12.74 12.74 0.00 0.00 0.00 0.00 10:47:13 10:28:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:28:01 ens3 0.28 0.20 0.03 0.03 0.00 0.00 0.00 0.00 10:47:13 10:28:01 lo 22.45 22.45 8.84 8.84 0.00 0.00 0.00 0.00 10:47:13 10:29:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:29:01 ens3 2.17 2.02 0.86 0.74 0.00 0.00 0.00 0.00 10:47:13 10:29:01 lo 20.28 20.28 7.61 7.61 0.00 0.00 0.00 0.00 10:47:13 10:30:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:30:01 ens3 0.88 0.70 0.21 0.14 0.00 0.00 0.00 0.00 10:47:13 10:30:01 lo 37.07 37.07 32.76 32.76 0.00 0.00 0.00 0.00 10:47:13 10:31:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:31:01 ens3 1.43 1.45 0.30 0.27 0.00 0.00 0.00 0.00 10:47:13 10:31:01 lo 18.95 18.95 9.87 9.87 0.00 0.00 0.00 0.00 10:47:13 10:32:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:32:01 ens3 1.10 1.07 0.35 0.31 0.00 0.00 0.00 0.00 10:47:13 10:32:01 lo 20.28 20.28 5.37 5.37 0.00 0.00 0.00 0.00 10:47:13 10:33:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:33:01 ens3 1.83 1.60 0.50 0.40 0.00 0.00 0.00 0.00 10:47:13 10:33:01 lo 39.28 39.28 19.45 19.45 0.00 0.00 0.00 0.00 10:47:13 10:34:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:34:01 ens3 1.17 1.00 0.20 0.15 0.00 0.00 0.00 0.00 10:47:13 10:34:01 lo 12.60 12.60 5.37 5.37 0.00 0.00 0.00 0.00 10:47:13 10:35:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:35:01 ens3 0.70 0.47 0.20 0.12 0.00 0.00 0.00 0.00 10:47:13 10:35:01 lo 20.91 20.91 7.71 7.71 0.00 0.00 0.00 0.00 10:47:13 10:36:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:36:01 ens3 1.65 0.93 0.48 0.35 0.00 0.00 0.00 0.00 10:47:13 10:36:01 lo 18.83 18.83 7.62 7.62 0.00 0.00 0.00 0.00 10:47:13 10:37:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:37:01 ens3 0.58 0.47 0.11 0.09 0.00 0.00 0.00 0.00 10:47:13 10:37:01 lo 28.53 28.53 9.03 9.03 0.00 0.00 0.00 0.00 10:47:13 10:38:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:38:01 ens3 0.82 0.60 0.13 0.11 0.00 0.00 0.00 0.00 10:47:13 10:38:01 lo 21.43 21.43 7.98 7.98 0.00 0.00 0.00 0.00 10:47:13 10:39:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:39:01 ens3 1.02 0.58 0.19 0.16 0.00 0.00 0.00 0.00 10:47:13 10:39:01 lo 37.38 37.38 11.78 11.78 0.00 0.00 0.00 0.00 10:47:13 10:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:40:01 ens3 1.65 1.35 0.60 0.43 0.00 0.00 0.00 0.00 10:47:13 10:40:01 lo 41.56 41.56 20.91 20.91 0.00 0.00 0.00 0.00 10:47:13 10:41:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:41:01 ens3 1.27 1.48 0.48 0.42 0.00 0.00 0.00 0.00 10:47:13 10:41:01 lo 40.43 40.43 15.10 15.10 0.00 0.00 0.00 0.00 10:47:13 10:42:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:42:01 ens3 0.43 0.45 0.07 0.07 0.00 0.00 0.00 0.00 10:47:13 10:42:01 lo 57.82 57.82 19.97 19.97 0.00 0.00 0.00 0.00 10:47:13 10:43:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:43:01 ens3 0.45 0.47 0.08 0.07 0.00 0.00 0.00 0.00 10:47:13 10:43:01 lo 74.75 74.75 24.59 24.59 0.00 0.00 0.00 0.00 10:47:13 10:44:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:44:01 ens3 0.22 0.07 0.01 0.01 0.00 0.00 0.00 0.00 10:47:13 10:44:01 lo 0.65 0.65 0.05 0.05 0.00 0.00 0.00 0.00 10:47:13 10:45:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:45:01 ens3 0.33 0.25 0.14 0.08 0.00 0.00 0.00 0.00 10:47:13 10:45:01 lo 0.73 0.73 0.09 0.09 0.00 0.00 0.00 0.00 10:47:13 10:46:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:46:01 ens3 0.45 0.33 0.05 0.05 0.00 0.00 0.00 0.00 10:47:13 10:46:01 lo 1.65 1.65 0.14 0.14 0.00 0.00 0.00 0.00 10:47:13 10:47:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 10:47:01 ens3 163.41 151.89 2044.72 79.50 0.00 0.00 0.00 0.00 10:47:13 10:47:01 lo 1.02 1.02 0.10 0.10 0.00 0.00 0.00 0.00 10:47:13 Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:47:13 Average: ens3 13.95 10.44 187.09 2.10 0.00 0.00 0.00 0.00 10:47:13 Average: lo 19.00 19.00 8.65 8.65 0.00 0.00 0.00 0.00 10:47:13 10:47:13 10:47:13 ---> sar -P ALL: 10:47:13 Linux 5.4.0-190-generic (prd-ubuntu2004-docker-4c-16g-43706) 10/18/24 _x86_64_ (4 CPU) 10:47:13 10:47:13 08:59:07 LINUX RESTART (4 CPU) 10:47:13 10:47:13 09:00:02 CPU %user %nice %system %iowait %steal %idle 10:47:13 09:01:01 all 18.74 8.34 7.75 3.59 0.09 61.49 10:47:13 09:01:01 0 8.39 9.48 8.18 1.13 0.09 72.74 10:47:13 09:01:01 1 23.30 9.65 9.01 2.88 0.10 55.06 10:47:13 09:01:01 2 23.66 7.56 7.58 4.81 0.09 56.30 10:47:13 09:01:01 3 19.61 6.68 6.24 5.54 0.09 61.84 10:47:13 09:02:01 all 77.31 0.00 5.45 4.39 0.13 12.73 10:47:13 09:02:01 0 75.86 0.00 5.44 4.07 0.12 14.52 10:47:13 09:02:01 1 74.79 0.00 5.82 5.79 0.13 13.47 10:47:13 09:02:01 2 80.99 0.00 4.99 3.22 0.12 10.68 10:47:13 09:02:01 3 77.59 0.00 5.54 4.48 0.14 12.25 10:47:13 09:03:01 all 55.76 0.00 2.71 2.59 0.11 38.83 10:47:13 09:03:01 0 51.61 0.00 3.26 2.74 0.12 42.27 10:47:13 09:03:01 1 78.30 0.00 2.61 2.24 0.12 16.73 10:47:13 09:03:01 2 43.17 0.00 2.53 3.92 0.10 50.28 10:47:13 09:03:01 3 50.24 0.00 2.43 1.46 0.10 45.77 10:47:13 09:04:01 all 87.24 0.00 4.64 4.66 0.17 3.30 10:47:13 09:04:01 0 87.51 0.00 4.20 4.11 0.15 4.03 10:47:13 09:04:01 1 86.55 0.00 4.42 6.08 0.20 2.75 10:47:13 09:04:01 2 90.17 0.00 4.36 2.09 0.17 3.21 10:47:13 09:04:01 3 84.71 0.00 5.58 6.36 0.17 3.19 10:47:13 09:05:01 all 90.34 0.00 4.40 2.03 0.15 3.08 10:47:13 09:05:01 0 91.91 0.00 4.15 2.28 0.13 1.53 10:47:13 09:05:01 1 88.74 0.00 5.92 1.55 0.19 3.59 10:47:13 09:05:01 2 90.07 0.00 3.55 2.40 0.13 3.85 10:47:13 09:05:01 3 90.59 0.00 4.02 1.86 0.15 3.38 10:47:13 09:06:01 all 60.86 0.00 2.06 0.44 0.12 36.52 10:47:13 09:06:01 0 64.29 0.00 2.04 0.18 0.10 33.38 10:47:13 09:06:01 1 61.20 0.00 2.32 0.40 0.12 35.97 10:47:13 09:06:01 2 60.08 0.00 1.65 1.11 0.13 37.03 10:47:13 09:06:01 3 57.86 0.00 2.23 0.08 0.12 39.70 10:47:13 09:07:01 all 48.25 0.00 1.87 0.29 0.11 49.49 10:47:13 09:07:01 0 47.87 0.00 1.75 0.08 0.10 50.20 10:47:13 09:07:01 1 49.92 0.00 1.76 0.05 0.12 48.16 10:47:13 09:07:01 2 46.12 0.00 2.23 0.95 0.12 50.59 10:47:13 09:07:01 3 49.09 0.00 1.74 0.07 0.10 49.00 10:47:13 09:08:01 all 41.61 0.00 1.64 0.27 0.10 56.38 10:47:13 09:08:01 0 40.88 0.00 1.77 0.30 0.10 56.95 10:47:13 09:08:01 1 41.97 0.00 1.59 0.02 0.10 56.32 10:47:13 09:08:01 2 40.74 0.00 1.75 0.65 0.10 56.76 10:47:13 09:08:01 3 42.86 0.00 1.46 0.12 0.10 55.46 10:47:13 09:09:01 all 87.50 0.00 3.08 0.41 0.13 8.88 10:47:13 09:09:01 0 88.69 0.00 3.49 1.11 0.13 6.58 10:47:13 09:09:01 1 87.40 0.00 3.15 0.18 0.13 9.13 10:47:13 09:09:01 2 87.58 0.00 2.85 0.28 0.13 9.15 10:47:13 09:09:01 3 86.33 0.00 2.81 0.08 0.13 10.64 10:47:13 09:10:01 all 32.51 0.00 1.22 0.52 0.10 65.66 10:47:13 09:10:01 0 31.85 0.00 1.07 0.10 0.10 66.88 10:47:13 09:10:01 1 34.20 0.00 1.02 0.45 0.10 64.23 10:47:13 09:10:01 2 33.34 0.00 1.47 0.17 0.08 64.94 10:47:13 09:10:01 3 30.65 0.00 1.31 1.34 0.10 66.60 10:47:13 09:11:01 all 7.28 0.00 0.52 0.01 0.08 92.11 10:47:13 09:11:01 0 7.88 0.00 0.53 0.00 0.07 91.52 10:47:13 09:11:01 1 7.19 0.00 0.58 0.02 0.07 92.15 10:47:13 09:11:01 2 7.00 0.00 0.48 0.00 0.10 92.41 10:47:13 09:11:01 3 7.07 0.00 0.47 0.03 0.07 92.36 10:47:13 10:47:13 09:11:01 CPU %user %nice %system %iowait %steal %idle 10:47:13 09:12:01 all 3.86 0.00 0.48 0.02 0.07 95.57 10:47:13 09:12:01 0 3.82 0.00 0.38 0.02 0.07 95.71 10:47:13 09:12:01 1 3.99 0.00 0.62 0.00 0.08 95.30 10:47:13 09:12:01 2 3.99 0.00 0.52 0.00 0.07 95.42 10:47:13 09:12:01 3 3.65 0.00 0.39 0.07 0.05 95.85 10:47:13 09:13:01 all 12.19 0.00 0.88 0.03 0.08 86.83 10:47:13 09:13:01 0 12.07 0.00 1.02 0.00 0.10 86.82 10:47:13 09:13:01 1 12.85 0.00 1.04 0.03 0.07 86.00 10:47:13 09:13:01 2 12.29 0.00 0.74 0.00 0.07 86.90 10:47:13 09:13:01 3 11.53 0.00 0.70 0.08 0.08 87.60 10:47:13 09:14:01 all 29.08 0.00 1.12 0.24 0.10 69.46 10:47:13 09:14:01 0 26.68 0.00 1.22 0.00 0.08 72.01 10:47:13 09:14:01 1 29.91 0.00 1.14 0.00 0.10 68.84 10:47:13 09:14:01 2 29.58 0.00 0.74 0.37 0.10 69.21 10:47:13 09:14:01 3 30.16 0.00 1.37 0.59 0.10 67.78 10:47:13 09:15:01 all 0.81 0.00 0.35 0.05 0.06 98.74 10:47:13 09:15:01 0 1.05 0.00 0.33 0.00 0.07 98.55 10:47:13 09:15:01 1 0.57 0.00 0.32 0.03 0.07 99.01 10:47:13 09:15:01 2 0.44 0.00 0.28 0.08 0.05 99.15 10:47:13 09:15:01 3 1.19 0.00 0.45 0.07 0.05 98.24 10:47:13 09:16:01 all 11.70 0.00 0.76 0.03 0.07 87.45 10:47:13 09:16:01 0 12.54 0.00 0.79 0.02 0.07 86.59 10:47:13 09:16:01 1 10.74 0.00 0.49 0.02 0.05 88.71 10:47:13 09:16:01 2 11.60 0.00 0.82 0.03 0.08 87.46 10:47:13 09:16:01 3 11.93 0.00 0.94 0.03 0.08 87.01 10:47:13 09:17:01 all 78.46 0.00 2.92 0.03 0.11 18.48 10:47:13 09:17:01 0 78.91 0.00 3.16 0.03 0.12 17.78 10:47:13 09:17:01 1 73.80 0.00 3.21 0.02 0.12 22.86 10:47:13 09:17:01 2 80.94 0.00 2.59 0.02 0.10 16.35 10:47:13 09:17:01 3 80.19 0.00 2.70 0.05 0.10 16.96 10:47:13 09:18:01 all 40.32 0.00 1.57 0.45 0.09 57.57 10:47:13 09:18:01 0 41.88 0.00 1.86 0.52 0.10 55.64 10:47:13 09:18:01 1 40.67 0.00 1.61 0.08 0.08 57.56 10:47:13 09:18:01 2 41.23 0.00 1.32 0.02 0.10 57.33 10:47:13 09:18:01 3 37.51 0.00 1.48 1.18 0.08 59.74 10:47:13 09:19:01 all 2.71 0.00 0.33 0.03 0.09 96.85 10:47:13 09:19:01 0 2.26 0.00 0.37 0.00 0.08 97.28 10:47:13 09:19:01 1 3.06 0.00 0.23 0.00 0.08 96.62 10:47:13 09:19:01 2 2.13 0.00 0.45 0.00 0.10 97.31 10:47:13 09:19:01 3 3.36 0.00 0.27 0.10 0.08 96.19 10:47:13 09:20:01 all 1.86 0.00 0.38 0.03 0.07 97.67 10:47:13 09:20:01 0 2.26 0.00 0.47 0.00 0.07 97.20 10:47:13 09:20:01 1 1.62 0.00 0.33 0.00 0.07 97.98 10:47:13 09:20:01 2 1.78 0.00 0.42 0.00 0.07 97.74 10:47:13 09:20:01 3 1.78 0.00 0.29 0.10 0.07 97.77 10:47:13 09:21:01 all 28.33 0.00 1.33 0.22 0.10 70.02 10:47:13 09:21:01 0 26.80 0.00 1.22 0.03 0.10 71.85 10:47:13 09:21:01 1 33.41 0.00 1.59 0.12 0.10 64.79 10:47:13 09:21:01 2 28.43 0.00 1.46 0.02 0.08 70.01 10:47:13 09:21:01 3 24.66 0.00 1.06 0.72 0.10 73.46 10:47:13 09:22:01 all 51.78 0.00 1.96 0.94 0.10 45.22 10:47:13 09:22:01 0 50.98 0.00 2.36 1.29 0.10 45.26 10:47:13 09:22:01 1 51.50 0.00 1.78 0.12 0.10 46.50 10:47:13 09:22:01 2 53.45 0.00 1.86 0.50 0.10 44.08 10:47:13 09:22:01 3 51.20 0.00 1.84 1.84 0.10 45.02 10:47:13 10:47:13 09:22:01 CPU %user %nice %system %iowait %steal %idle 10:47:13 09:23:02 all 6.43 0.00 0.33 0.02 0.09 93.12 10:47:13 09:23:02 0 6.11 0.00 0.42 0.02 0.12 93.34 10:47:13 09:23:02 1 6.80 0.00 0.30 0.00 0.08 92.82 10:47:13 09:23:02 2 5.93 0.00 0.23 0.00 0.08 93.75 10:47:13 09:23:02 3 6.91 0.00 0.37 0.05 0.08 92.59 10:47:13 09:24:01 all 3.28 0.00 0.30 0.02 0.09 96.32 10:47:13 09:24:01 0 3.06 0.00 0.22 0.00 0.09 96.64 10:47:13 09:24:01 1 3.26 0.00 0.27 0.00 0.09 96.38 10:47:13 09:24:01 2 3.99 0.00 0.48 0.00 0.08 95.45 10:47:13 09:24:01 3 2.79 0.00 0.22 0.09 0.09 96.81 10:47:13 09:25:01 all 46.23 0.00 1.83 0.33 0.11 51.50 10:47:13 09:25:01 0 46.02 0.00 2.02 1.13 0.10 50.74 10:47:13 09:25:01 1 48.25 0.00 1.78 0.03 0.10 49.83 10:47:13 09:25:01 2 43.66 0.00 1.87 0.13 0.12 54.22 10:47:13 09:25:01 3 46.99 0.00 1.66 0.03 0.10 51.22 10:47:13 09:26:01 all 4.93 0.00 0.40 0.02 0.08 94.56 10:47:13 09:26:01 0 5.22 0.00 0.33 0.05 0.07 94.32 10:47:13 09:26:01 1 4.74 0.00 0.52 0.03 0.08 94.62 10:47:13 09:26:01 2 4.92 0.00 0.37 0.00 0.10 94.61 10:47:13 09:26:01 3 4.85 0.00 0.37 0.00 0.08 94.69 10:47:13 09:27:01 all 31.63 0.00 1.30 0.35 0.08 66.64 10:47:13 09:27:01 0 33.01 0.00 1.75 1.29 0.10 63.85 10:47:13 09:27:01 1 31.91 0.00 1.17 0.02 0.08 66.81 10:47:13 09:27:01 2 29.38 0.00 1.38 0.02 0.08 69.14 10:47:13 09:27:01 3 32.21 0.00 0.89 0.08 0.07 66.75 10:47:13 09:28:01 all 19.96 0.00 1.33 0.19 0.08 78.44 10:47:13 09:28:01 0 17.42 0.00 1.26 0.59 0.08 80.65 10:47:13 09:28:01 1 22.70 0.00 1.38 0.03 0.08 75.81 10:47:13 09:28:01 2 20.72 0.00 1.45 0.10 0.07 77.66 10:47:13 09:28:01 3 19.01 0.00 1.24 0.03 0.10 79.62 10:47:13 09:29:01 all 95.00 0.00 3.31 0.02 0.10 1.57 10:47:13 09:29:01 0 94.45 0.00 3.33 0.02 0.12 2.08 10:47:13 09:29:01 1 95.48 0.00 3.11 0.00 0.08 1.32 10:47:13 09:29:01 2 94.86 0.00 3.56 0.02 0.12 1.45 10:47:13 09:29:01 3 95.22 0.00 3.23 0.03 0.08 1.44 10:47:13 09:30:01 all 9.61 0.00 0.59 0.07 0.08 89.66 10:47:13 09:30:01 0 9.84 0.00 0.76 0.10 0.08 89.22 10:47:13 09:30:01 1 9.86 0.00 0.65 0.05 0.08 89.35 10:47:13 09:30:01 2 9.56 0.00 0.49 0.02 0.07 89.87 10:47:13 09:30:01 3 9.17 0.00 0.47 0.10 0.08 90.18 10:47:13 09:31:01 all 1.17 0.00 0.43 0.02 0.08 98.31 10:47:13 09:31:01 0 1.47 0.00 0.39 0.03 0.08 98.02 10:47:13 09:31:01 1 1.02 0.00 0.37 0.00 0.08 98.53 10:47:13 09:31:01 2 1.10 0.00 0.50 0.02 0.08 98.29 10:47:13 09:31:01 3 1.06 0.00 0.45 0.02 0.08 98.38 10:47:13 09:32:01 all 1.19 0.00 0.31 0.01 0.08 98.41 10:47:13 09:32:01 0 0.57 0.00 0.22 0.02 0.08 99.11 10:47:13 09:32:01 1 0.75 0.00 0.34 0.00 0.08 98.83 10:47:13 09:32:01 2 0.94 0.00 0.39 0.00 0.08 98.59 10:47:13 09:32:01 3 2.49 0.00 0.32 0.02 0.07 97.11 10:47:13 09:33:01 all 39.25 0.00 1.85 0.04 0.10 58.76 10:47:13 09:33:01 0 38.05 0.00 1.91 0.05 0.13 59.86 10:47:13 09:33:01 1 41.93 0.00 1.74 0.03 0.10 56.19 10:47:13 09:33:01 2 39.02 0.00 1.64 0.00 0.08 59.26 10:47:13 09:33:01 3 37.98 0.00 2.12 0.07 0.10 59.73 10:47:13 10:47:13 09:33:01 CPU %user %nice %system %iowait %steal %idle 10:47:13 09:34:01 all 76.41 0.00 2.86 0.39 0.11 20.23 10:47:13 09:34:01 0 77.74 0.00 2.83 1.24 0.12 18.08 10:47:13 09:34:01 1 74.32 0.00 2.61 0.13 0.12 22.82 10:47:13 09:34:01 2 76.87 0.00 3.00 0.08 0.10 19.95 10:47:13 09:34:01 3 76.70 0.00 3.00 0.12 0.12 20.06 10:47:13 09:35:01 all 22.49 0.00 0.99 0.02 0.09 76.41 10:47:13 09:35:01 0 22.81 0.00 0.82 0.03 0.10 76.24 10:47:13 09:35:01 1 22.43 0.00 1.05 0.03 0.08 76.40 10:47:13 09:35:01 2 22.34 0.00 0.96 0.00 0.08 76.61 10:47:13 09:35:01 3 22.37 0.00 1.14 0.00 0.10 76.39 10:47:13 09:36:01 all 9.90 0.00 0.70 0.03 0.07 89.30 10:47:13 09:36:01 0 10.00 0.00 0.70 0.03 0.07 89.21 10:47:13 09:36:01 1 9.38 0.00 0.65 0.02 0.07 89.89 10:47:13 09:36:01 2 10.48 0.00 0.63 0.00 0.08 88.81 10:47:13 09:36:01 3 9.76 0.00 0.82 0.05 0.07 89.30 10:47:13 09:37:01 all 29.93 0.00 1.17 0.28 0.09 68.53 10:47:13 09:37:01 0 30.27 0.00 0.84 0.28 0.08 68.52 10:47:13 09:37:01 1 28.72 0.00 1.15 0.05 0.10 69.97 10:47:13 09:37:01 2 31.21 0.00 0.95 0.32 0.07 67.45 10:47:13 09:37:01 3 29.50 0.00 1.74 0.49 0.10 68.17 10:47:13 09:38:01 all 28.51 0.00 0.95 0.23 0.09 70.22 10:47:13 09:38:01 0 25.31 0.00 0.97 0.17 0.10 73.45 10:47:13 09:38:01 1 28.90 0.00 0.97 0.02 0.08 70.03 10:47:13 09:38:01 2 30.36 0.00 0.65 0.22 0.08 68.68 10:47:13 09:38:01 3 29.46 0.00 1.21 0.51 0.08 68.74 10:47:13 09:39:01 all 10.30 0.00 0.55 0.01 0.07 89.06 10:47:13 09:39:01 0 11.06 0.00 0.59 0.00 0.07 88.28 10:47:13 09:39:01 1 10.83 0.00 0.69 0.00 0.07 88.42 10:47:13 09:39:01 2 8.62 0.00 0.58 0.02 0.07 90.72 10:47:13 09:39:01 3 10.71 0.00 0.35 0.03 0.07 88.83 10:47:13 09:40:01 all 63.65 0.00 1.96 0.58 0.11 33.70 10:47:13 09:40:01 0 62.28 0.00 2.41 2.03 0.10 33.18 10:47:13 09:40:01 1 64.79 0.00 1.95 0.18 0.12 32.96 10:47:13 09:40:01 2 65.09 0.00 1.71 0.02 0.10 33.08 10:47:13 09:40:01 3 62.43 0.00 1.78 0.10 0.12 35.57 10:47:13 09:41:01 all 5.51 0.00 0.41 0.02 0.08 93.98 10:47:13 09:41:01 0 5.48 0.00 0.40 0.03 0.07 94.02 10:47:13 09:41:01 1 5.23 0.00 0.33 0.00 0.07 94.36 10:47:13 09:41:01 2 5.96 0.00 0.52 0.00 0.12 93.40 10:47:13 09:41:01 3 5.36 0.00 0.37 0.05 0.08 94.13 10:47:13 09:42:01 all 40.54 0.00 1.43 0.31 0.09 57.62 10:47:13 09:42:01 0 40.97 0.00 1.18 0.00 0.10 57.75 10:47:13 09:42:01 1 40.85 0.00 1.59 0.47 0.10 56.99 10:47:13 09:42:01 2 39.58 0.00 1.53 0.74 0.08 58.07 10:47:13 09:42:01 3 40.78 0.00 1.42 0.03 0.08 57.68 10:47:13 09:43:01 all 25.49 0.00 1.01 0.03 0.09 73.37 10:47:13 09:43:01 0 25.86 0.00 1.17 0.02 0.08 72.86 10:47:13 09:43:01 1 25.07 0.00 1.12 0.02 0.10 73.69 10:47:13 09:43:01 2 25.11 0.00 0.74 0.07 0.08 74.00 10:47:13 09:43:01 3 25.93 0.00 1.01 0.02 0.10 72.94 10:47:13 09:44:01 all 33.20 0.00 1.32 0.23 0.10 65.15 10:47:13 09:44:01 0 31.30 0.00 1.06 0.05 0.10 67.49 10:47:13 09:44:01 1 34.10 0.00 1.60 0.10 0.08 64.12 10:47:13 09:44:01 2 33.72 0.00 1.74 0.40 0.10 64.03 10:47:13 09:44:01 3 33.69 0.00 0.89 0.37 0.10 64.95 10:47:13 10:47:13 09:44:01 CPU %user %nice %system %iowait %steal %idle 10:47:13 09:45:01 all 7.77 0.00 0.42 0.02 0.09 91.70 10:47:13 09:45:01 0 7.84 0.00 0.45 0.02 0.08 91.61 10:47:13 09:45:01 1 7.65 0.00 0.39 0.00 0.10 91.87 10:47:13 09:45:01 2 7.59 0.00 0.40 0.03 0.10 91.87 10:47:13 09:45:01 3 7.99 0.00 0.44 0.02 0.08 91.47 10:47:13 09:46:01 all 3.08 0.00 0.30 0.01 0.09 96.52 10:47:13 09:46:01 0 3.86 0.00 0.40 0.00 0.08 95.66 10:47:13 09:46:01 1 2.71 0.00 0.27 0.00 0.10 96.92 10:47:13 09:46:01 2 2.64 0.00 0.29 0.02 0.08 96.98 10:47:13 09:46:01 3 3.11 0.00 0.25 0.03 0.08 96.52 10:47:13 09:47:01 all 0.63 0.00 0.24 0.02 0.07 99.04 10:47:13 09:47:01 0 0.86 0.00 0.29 0.00 0.07 98.79 10:47:13 09:47:01 1 0.44 0.00 0.24 0.00 0.08 99.24 10:47:13 09:47:01 2 0.93 0.00 0.24 0.03 0.08 98.72 10:47:13 09:47:01 3 0.30 0.00 0.22 0.03 0.03 99.41 10:47:13 09:48:01 all 0.28 0.00 0.12 0.01 0.07 99.52 10:47:13 09:48:01 0 0.25 0.00 0.15 0.00 0.07 99.53 10:47:13 09:48:01 1 0.33 0.00 0.12 0.00 0.07 99.48 10:47:13 09:48:01 2 0.29 0.00 0.08 0.02 0.08 99.53 10:47:13 09:48:01 3 0.25 0.00 0.13 0.02 0.07 99.53 10:47:13 09:49:01 all 13.21 0.00 0.79 0.02 0.08 85.91 10:47:13 09:49:01 0 12.39 0.00 0.72 0.00 0.10 86.79 10:47:13 09:49:01 1 13.55 0.00 0.90 0.00 0.08 85.46 10:47:13 09:49:01 2 13.11 0.00 0.85 0.03 0.07 85.93 10:47:13 09:49:01 3 13.78 0.00 0.67 0.03 0.05 85.47 10:47:13 09:50:01 all 42.91 0.00 1.38 0.25 0.10 55.36 10:47:13 09:50:01 0 42.83 0.00 1.02 0.02 0.10 56.03 10:47:13 09:50:01 1 42.30 0.00 1.28 0.00 0.08 56.33 10:47:13 09:50:01 2 43.72 0.00 1.93 0.62 0.10 53.63 10:47:13 09:50:01 3 42.79 0.00 1.29 0.37 0.10 55.44 10:47:13 09:51:01 all 7.17 0.00 0.26 0.03 0.07 92.46 10:47:13 09:51:01 0 7.50 0.00 0.28 0.00 0.07 92.15 10:47:13 09:51:01 1 6.95 0.00 0.18 0.00 0.07 92.80 10:47:13 09:51:01 2 7.28 0.00 0.42 0.07 0.08 92.15 10:47:13 09:51:01 3 6.97 0.00 0.17 0.07 0.07 92.73 10:47:13 09:52:01 all 2.91 0.00 0.20 0.01 0.05 96.83 10:47:13 09:52:01 0 3.95 0.00 0.23 0.00 0.05 95.77 10:47:13 09:52:01 1 2.37 0.00 0.13 0.00 0.03 97.47 10:47:13 09:52:01 2 2.59 0.00 0.27 0.02 0.07 97.06 10:47:13 09:52:01 3 2.73 0.00 0.15 0.02 0.05 97.05 10:47:13 09:53:01 all 2.58 0.00 0.18 0.02 0.07 97.14 10:47:13 09:53:01 0 2.50 0.00 0.15 0.00 0.08 97.27 10:47:13 09:53:01 1 2.58 0.00 0.17 0.02 0.07 97.17 10:47:13 09:53:01 2 2.95 0.00 0.22 0.03 0.07 96.74 10:47:13 09:53:01 3 2.31 0.00 0.20 0.02 0.07 97.40 10:47:13 09:54:01 all 3.28 0.00 0.21 0.02 0.06 96.42 10:47:13 09:54:01 0 3.15 0.00 0.23 0.00 0.05 96.57 10:47:13 09:54:01 1 3.36 0.00 0.25 0.00 0.08 96.31 10:47:13 09:54:01 2 3.50 0.00 0.22 0.03 0.07 96.18 10:47:13 09:54:01 3 3.11 0.00 0.15 0.05 0.05 96.63 10:47:13 09:55:01 all 1.57 0.00 0.18 0.01 0.08 98.16 10:47:13 09:55:01 0 1.79 0.00 0.23 0.00 0.08 97.89 10:47:13 09:55:01 1 1.86 0.00 0.17 0.00 0.10 97.87 10:47:13 09:55:01 2 1.14 0.00 0.20 0.03 0.08 98.54 10:47:13 09:55:01 3 1.47 0.00 0.13 0.02 0.05 98.33 10:47:13 10:47:13 09:55:01 CPU %user %nice %system %iowait %steal %idle 10:47:13 09:56:01 all 1.97 0.00 0.18 0.03 0.08 97.75 10:47:13 09:56:01 0 2.14 0.00 0.27 0.00 0.08 97.51 10:47:13 09:56:01 1 1.91 0.00 0.17 0.00 0.08 97.84 10:47:13 09:56:01 2 1.96 0.00 0.12 0.03 0.07 97.82 10:47:13 09:56:01 3 1.86 0.00 0.17 0.07 0.07 97.84 10:47:13 09:57:01 all 2.67 0.00 0.24 0.01 0.08 97.00 10:47:13 09:57:01 0 3.23 0.00 0.23 0.00 0.08 96.46 10:47:13 09:57:01 1 2.24 0.00 0.20 0.00 0.08 97.47 10:47:13 09:57:01 2 2.99 0.00 0.30 0.03 0.07 96.61 10:47:13 09:57:01 3 2.21 0.00 0.23 0.02 0.08 97.46 10:47:13 09:58:01 all 0.63 0.00 0.15 0.01 0.08 99.12 10:47:13 09:58:01 0 1.66 0.00 0.08 0.00 0.07 98.20 10:47:13 09:58:01 1 0.33 0.00 0.22 0.00 0.08 99.37 10:47:13 09:58:01 2 0.27 0.00 0.15 0.03 0.08 99.46 10:47:13 09:58:01 3 0.27 0.00 0.17 0.02 0.07 99.48 10:47:13 09:59:01 all 0.29 0.00 0.12 0.01 0.08 99.49 10:47:13 09:59:01 0 0.35 0.00 0.12 0.00 0.10 99.43 10:47:13 09:59:01 1 0.32 0.00 0.18 0.00 0.08 99.41 10:47:13 09:59:01 2 0.23 0.00 0.10 0.03 0.07 99.57 10:47:13 09:59:01 3 0.27 0.00 0.08 0.02 0.07 99.56 10:47:13 10:00:01 all 0.21 0.00 0.13 0.01 0.06 99.59 10:47:13 10:00:01 0 0.22 0.00 0.13 0.00 0.07 99.58 10:47:13 10:00:01 1 0.22 0.00 0.15 0.00 0.07 99.56 10:47:13 10:00:01 2 0.17 0.00 0.10 0.02 0.05 99.67 10:47:13 10:00:01 3 0.22 0.00 0.13 0.02 0.07 99.56 10:47:13 10:01:01 all 53.61 0.00 1.73 0.26 0.09 44.32 10:47:13 10:01:01 0 52.95 0.00 1.79 0.47 0.10 44.68 10:47:13 10:01:01 1 54.77 0.00 1.70 0.42 0.08 43.03 10:47:13 10:01:01 2 52.29 0.00 1.71 0.15 0.08 45.77 10:47:13 10:01:01 3 54.41 0.00 1.72 0.00 0.08 43.78 10:47:13 10:02:01 all 9.61 0.00 0.36 0.02 0.08 89.94 10:47:13 10:02:01 0 9.64 0.00 0.35 0.00 0.08 89.92 10:47:13 10:02:01 1 9.79 0.00 0.37 0.05 0.07 89.72 10:47:13 10:02:01 2 8.94 0.00 0.40 0.00 0.07 90.59 10:47:13 10:02:01 3 10.06 0.00 0.32 0.02 0.08 89.53 10:47:13 10:03:01 all 4.64 0.00 0.28 0.02 0.07 94.99 10:47:13 10:03:01 0 4.49 0.00 0.32 0.02 0.08 95.09 10:47:13 10:03:01 1 4.45 0.00 0.18 0.03 0.07 95.27 10:47:13 10:03:01 2 4.91 0.00 0.23 0.00 0.05 94.81 10:47:13 10:03:01 3 4.73 0.00 0.39 0.02 0.08 94.79 10:47:13 10:04:01 all 3.63 0.00 0.23 0.02 0.06 96.06 10:47:13 10:04:01 0 2.96 0.00 0.27 0.02 0.07 96.68 10:47:13 10:04:01 1 3.76 0.00 0.17 0.05 0.05 95.98 10:47:13 10:04:01 2 4.37 0.00 0.27 0.00 0.07 95.30 10:47:13 10:04:01 3 3.42 0.00 0.20 0.02 0.07 96.30 10:47:13 10:05:01 all 2.24 0.00 0.26 0.02 0.06 97.43 10:47:13 10:05:01 0 2.66 0.00 0.17 0.02 0.07 97.09 10:47:13 10:05:01 1 2.33 0.00 0.33 0.03 0.05 97.26 10:47:13 10:05:01 2 2.01 0.00 0.20 0.00 0.07 97.72 10:47:13 10:05:01 3 1.96 0.00 0.32 0.03 0.05 97.64 10:47:13 10:06:01 all 1.88 0.00 0.18 0.02 0.05 97.86 10:47:13 10:06:01 0 1.86 0.00 0.15 0.00 0.05 97.94 10:47:13 10:06:01 1 1.96 0.00 0.20 0.03 0.05 97.76 10:47:13 10:06:01 2 1.82 0.00 0.15 0.00 0.05 97.97 10:47:13 10:06:01 3 1.89 0.00 0.23 0.03 0.05 97.79 10:47:13 10:47:13 10:06:01 CPU %user %nice %system %iowait %steal %idle 10:47:13 10:07:01 all 4.52 0.00 0.26 0.02 0.05 95.14 10:47:13 10:07:01 0 4.38 0.00 0.27 0.00 0.05 95.30 10:47:13 10:07:01 1 4.61 0.00 0.27 0.05 0.05 95.02 10:47:13 10:07:01 2 4.45 0.00 0.22 0.00 0.05 95.29 10:47:13 10:07:01 3 4.65 0.00 0.30 0.03 0.07 94.94 10:47:13 10:08:01 all 1.79 0.00 0.18 0.01 0.07 97.94 10:47:13 10:08:01 0 1.93 0.00 0.28 0.00 0.07 97.72 10:47:13 10:08:01 1 1.76 0.00 0.10 0.02 0.07 98.05 10:47:13 10:08:01 2 1.68 0.00 0.17 0.00 0.07 98.09 10:47:13 10:08:01 3 1.79 0.00 0.18 0.03 0.08 97.91 10:47:13 10:09:01 all 0.28 0.00 0.10 0.01 0.07 99.53 10:47:13 10:09:01 0 0.29 0.00 0.13 0.00 0.08 99.49 10:47:13 10:09:01 1 0.15 0.00 0.12 0.03 0.08 99.61 10:47:13 10:09:01 2 0.40 0.00 0.08 0.00 0.05 99.46 10:47:13 10:09:01 3 0.30 0.00 0.08 0.02 0.05 99.55 10:47:13 10:10:01 all 0.23 0.00 0.12 0.01 0.05 99.59 10:47:13 10:10:01 0 0.12 0.00 0.05 0.00 0.05 99.78 10:47:13 10:10:01 1 0.27 0.00 0.15 0.02 0.07 99.50 10:47:13 10:10:01 2 0.33 0.00 0.17 0.00 0.05 99.45 10:47:13 10:10:01 3 0.18 0.00 0.10 0.03 0.05 99.63 10:47:13 10:11:01 all 27.82 0.00 1.04 0.02 0.07 71.05 10:47:13 10:11:01 0 26.46 0.00 0.81 0.02 0.07 72.65 10:47:13 10:11:01 1 27.16 0.00 0.91 0.03 0.07 71.83 10:47:13 10:11:01 2 28.81 0.00 1.09 0.00 0.08 70.02 10:47:13 10:11:01 3 28.83 0.00 1.36 0.02 0.07 69.73 10:47:13 10:12:01 all 39.74 0.00 1.12 0.30 0.10 58.74 10:47:13 10:12:01 0 39.85 0.00 1.12 0.17 0.08 58.77 10:47:13 10:12:01 1 41.02 0.00 1.14 0.94 0.10 56.80 10:47:13 10:12:01 2 40.10 0.00 1.41 0.08 0.10 58.31 10:47:13 10:12:01 3 38.00 0.00 0.82 0.02 0.10 61.06 10:47:13 10:13:01 all 8.32 0.00 0.34 0.02 0.07 91.26 10:47:13 10:13:01 0 8.71 0.00 0.25 0.00 0.07 90.97 10:47:13 10:13:01 1 8.47 0.00 0.57 0.03 0.07 90.86 10:47:13 10:13:01 2 7.98 0.00 0.25 0.02 0.07 91.69 10:47:13 10:13:01 3 8.11 0.00 0.28 0.02 0.07 91.52 10:47:13 10:14:01 all 4.09 0.00 0.17 0.02 0.07 95.66 10:47:13 10:14:01 0 4.48 0.00 0.18 0.00 0.07 95.27 10:47:13 10:14:01 1 3.65 0.00 0.25 0.03 0.07 96.00 10:47:13 10:14:01 2 4.33 0.00 0.13 0.00 0.07 95.47 10:47:13 10:14:01 3 3.88 0.00 0.10 0.03 0.07 95.92 10:47:13 10:15:01 all 3.00 0.00 0.17 0.01 0.07 96.75 10:47:13 10:15:01 0 2.57 0.00 0.13 0.00 0.07 97.23 10:47:13 10:15:01 1 2.64 0.00 0.18 0.00 0.05 97.12 10:47:13 10:15:01 2 4.25 0.00 0.15 0.00 0.08 95.52 10:47:13 10:15:01 3 2.53 0.00 0.22 0.05 0.07 97.14 10:47:13 10:16:01 all 4.59 0.00 0.26 0.04 0.08 95.03 10:47:13 10:16:01 0 4.33 0.00 0.30 0.12 0.08 95.17 10:47:13 10:16:01 1 4.46 0.00 0.18 0.00 0.07 95.29 10:47:13 10:16:01 2 4.99 0.00 0.32 0.00 0.10 94.59 10:47:13 10:16:01 3 4.56 0.00 0.23 0.03 0.08 95.09 10:47:13 10:17:01 all 1.86 0.00 0.24 0.02 0.08 97.80 10:47:13 10:17:01 0 1.94 0.00 0.22 0.03 0.08 97.72 10:47:13 10:17:01 1 1.65 0.00 0.27 0.00 0.08 98.00 10:47:13 10:17:01 2 1.79 0.00 0.28 0.00 0.07 97.85 10:47:13 10:17:01 3 2.06 0.00 0.20 0.03 0.07 97.63 10:47:13 10:47:13 10:17:01 CPU %user %nice %system %iowait %steal %idle 10:47:13 10:18:01 all 2.78 0.00 0.25 0.05 0.09 96.83 10:47:13 10:18:01 0 3.68 0.00 0.28 0.05 0.08 95.91 10:47:13 10:18:01 1 2.24 0.00 0.23 0.08 0.08 97.36 10:47:13 10:18:01 2 2.63 0.00 0.28 0.03 0.08 96.97 10:47:13 10:18:01 3 2.55 0.00 0.22 0.03 0.10 97.10 10:47:13 10:19:01 all 15.37 0.00 0.78 0.03 0.08 83.74 10:47:13 10:19:01 0 14.33 0.00 0.82 0.07 0.08 84.70 10:47:13 10:19:01 1 16.13 0.00 0.80 0.00 0.08 82.98 10:47:13 10:19:01 2 14.13 0.00 0.80 0.02 0.07 84.98 10:47:13 10:19:01 3 16.89 0.00 0.70 0.02 0.08 82.31 10:47:13 10:20:01 all 51.14 0.00 1.58 0.28 0.11 46.88 10:47:13 10:20:01 0 48.26 0.00 1.93 0.86 0.10 48.86 10:47:13 10:20:01 1 53.26 0.00 1.57 0.00 0.10 45.07 10:47:13 10:20:01 2 52.26 0.00 1.45 0.15 0.12 46.02 10:47:13 10:20:01 3 50.79 0.00 1.39 0.12 0.12 47.59 10:47:13 10:21:01 all 6.51 0.00 0.29 0.05 0.06 93.10 10:47:13 10:21:01 0 6.31 0.00 0.22 0.05 0.05 93.37 10:47:13 10:21:01 1 6.20 0.00 0.39 0.08 0.07 93.27 10:47:13 10:21:01 2 6.34 0.00 0.30 0.00 0.07 93.29 10:47:13 10:21:01 3 7.17 0.00 0.23 0.05 0.05 92.49 10:47:13 10:22:01 all 8.68 0.00 0.32 0.02 0.07 90.92 10:47:13 10:22:01 0 9.17 0.00 0.32 0.07 0.07 90.38 10:47:13 10:22:01 1 8.54 0.00 0.22 0.00 0.07 91.18 10:47:13 10:22:01 2 8.23 0.00 0.39 0.00 0.08 91.30 10:47:13 10:22:01 3 8.77 0.00 0.35 0.00 0.07 90.81 10:47:13 10:23:01 all 2.11 0.00 0.15 0.01 0.07 97.66 10:47:13 10:23:01 0 2.44 0.00 0.10 0.03 0.07 97.36 10:47:13 10:23:01 1 1.89 0.00 0.17 0.00 0.07 97.87 10:47:13 10:23:01 2 1.98 0.00 0.15 0.00 0.07 97.80 10:47:13 10:23:01 3 2.11 0.00 0.17 0.02 0.08 97.62 10:47:13 10:24:01 all 2.31 0.00 0.18 0.04 0.06 97.40 10:47:13 10:24:01 0 2.24 0.00 0.18 0.15 0.05 97.37 10:47:13 10:24:01 1 2.08 0.00 0.17 0.00 0.08 97.67 10:47:13 10:24:01 2 2.40 0.00 0.17 0.00 0.07 97.36 10:47:13 10:24:01 3 2.53 0.00 0.22 0.02 0.05 97.19 10:47:13 10:25:01 all 1.79 0.00 0.20 0.01 0.07 97.93 10:47:13 10:25:01 0 1.51 0.00 0.13 0.03 0.08 98.24 10:47:13 10:25:01 1 1.82 0.00 0.18 0.00 0.07 97.93 10:47:13 10:25:01 2 2.14 0.00 0.32 0.00 0.07 97.47 10:47:13 10:25:01 3 1.69 0.00 0.15 0.02 0.05 98.09 10:47:13 10:26:01 all 1.62 0.00 0.18 0.02 0.05 98.13 10:47:13 10:26:01 0 1.72 0.00 0.12 0.05 0.03 98.08 10:47:13 10:26:01 1 1.46 0.00 0.18 0.00 0.05 98.31 10:47:13 10:26:01 2 1.64 0.00 0.25 0.00 0.07 98.04 10:47:13 10:26:01 3 1.66 0.00 0.17 0.03 0.05 98.09 10:47:13 10:27:01 all 2.91 0.00 0.18 0.01 0.07 96.83 10:47:13 10:27:01 0 3.23 0.00 0.17 0.03 0.05 96.52 10:47:13 10:27:01 1 2.81 0.00 0.17 0.02 0.05 96.96 10:47:13 10:27:01 2 2.46 0.00 0.22 0.00 0.08 97.24 10:47:13 10:27:01 3 3.14 0.00 0.18 0.00 0.08 96.60 10:47:13 10:28:01 all 1.90 0.00 0.19 0.02 0.05 97.84 10:47:13 10:28:01 0 1.78 0.00 0.22 0.03 0.05 97.92 10:47:13 10:28:01 1 1.87 0.00 0.17 0.00 0.05 97.91 10:47:13 10:28:01 2 1.69 0.00 0.12 0.00 0.05 98.14 10:47:13 10:28:01 3 2.28 0.00 0.25 0.03 0.05 97.39 10:47:13 10:47:13 10:28:01 CPU %user %nice %system %iowait %steal %idle 10:47:13 10:29:01 all 5.14 0.00 0.63 0.11 0.06 94.07 10:47:13 10:29:01 0 3.42 0.00 0.43 0.20 0.05 95.89 10:47:13 10:29:01 1 3.61 0.00 0.62 0.00 0.05 95.72 10:47:13 10:29:01 2 10.57 0.00 1.02 0.03 0.07 88.30 10:47:13 10:29:01 3 2.96 0.00 0.44 0.20 0.07 96.33 10:47:13 10:30:01 all 58.92 0.00 1.73 0.96 0.10 38.28 10:47:13 10:30:01 0 61.31 0.00 1.54 0.05 0.10 37.00 10:47:13 10:30:01 1 60.61 0.00 2.05 0.00 0.12 37.22 10:47:13 10:30:01 2 61.75 0.00 1.52 2.03 0.10 34.60 10:47:13 10:30:01 3 51.99 0.00 1.82 1.77 0.10 44.32 10:47:13 10:31:01 all 3.33 0.00 0.52 0.02 0.07 96.07 10:47:13 10:31:01 0 3.19 0.00 0.25 0.00 0.05 96.51 10:47:13 10:31:01 1 3.38 0.00 0.40 0.00 0.10 96.12 10:47:13 10:31:01 2 3.16 0.00 0.38 0.07 0.07 96.33 10:47:13 10:31:01 3 3.59 0.00 1.04 0.00 0.07 95.31 10:47:13 10:32:01 all 34.87 0.00 1.16 0.04 0.08 63.86 10:47:13 10:32:01 0 36.75 0.00 1.15 0.00 0.07 62.03 10:47:13 10:32:01 1 33.96 0.00 1.28 0.03 0.08 64.65 10:47:13 10:32:01 2 35.21 0.00 1.02 0.08 0.08 63.60 10:47:13 10:32:01 3 33.54 0.00 1.19 0.03 0.08 65.16 10:47:13 10:33:01 all 25.09 0.00 0.61 0.27 0.08 73.96 10:47:13 10:33:01 0 25.68 0.00 0.77 0.25 0.07 73.23 10:47:13 10:33:01 1 25.29 0.00 0.64 0.07 0.08 73.92 10:47:13 10:33:01 2 25.83 0.00 0.55 0.69 0.08 72.84 10:47:13 10:33:01 3 23.60 0.00 0.46 0.07 0.07 75.81 10:47:13 10:34:01 all 2.62 0.00 0.19 0.03 0.05 97.10 10:47:13 10:34:01 0 2.34 0.00 0.22 0.00 0.05 97.39 10:47:13 10:34:01 1 2.14 0.00 0.25 0.00 0.05 97.56 10:47:13 10:34:01 2 3.04 0.00 0.10 0.08 0.05 96.73 10:47:13 10:34:01 3 2.95 0.00 0.20 0.05 0.07 96.74 10:47:13 10:35:01 all 2.79 0.00 0.19 0.03 0.06 96.93 10:47:13 10:35:01 0 2.32 0.00 0.17 0.00 0.07 97.45 10:47:13 10:35:01 1 2.46 0.00 0.20 0.00 0.07 97.27 10:47:13 10:35:01 2 3.84 0.00 0.22 0.10 0.07 95.78 10:47:13 10:35:01 3 2.55 0.00 0.17 0.02 0.05 97.22 10:47:13 10:36:01 all 1.78 0.00 0.14 0.02 0.06 98.00 10:47:13 10:36:01 0 1.95 0.00 0.15 0.00 0.07 97.83 10:47:13 10:36:01 1 1.51 0.00 0.08 0.00 0.07 98.34 10:47:13 10:36:01 2 1.95 0.00 0.20 0.03 0.07 97.75 10:47:13 10:36:01 3 1.72 0.00 0.12 0.05 0.05 98.06 10:47:13 10:37:01 all 2.93 0.00 0.16 0.01 0.07 96.84 10:47:13 10:37:01 0 2.97 0.00 0.20 0.00 0.07 96.76 10:47:13 10:37:01 1 3.05 0.00 0.10 0.00 0.05 96.80 10:47:13 10:37:01 2 2.98 0.00 0.17 0.02 0.08 96.75 10:47:13 10:37:01 3 2.71 0.00 0.15 0.03 0.07 97.04 10:47:13 10:38:01 all 1.96 0.00 0.16 0.01 0.07 97.80 10:47:13 10:38:01 0 1.79 0.00 0.22 0.00 0.07 97.92 10:47:13 10:38:01 1 1.88 0.00 0.17 0.00 0.08 97.86 10:47:13 10:38:01 2 2.17 0.00 0.12 0.03 0.05 97.63 10:47:13 10:38:01 3 1.97 0.00 0.15 0.02 0.08 97.78 10:47:13 10:39:01 all 27.79 0.00 0.92 0.03 0.07 71.19 10:47:13 10:39:01 0 27.63 0.00 0.64 0.00 0.07 71.67 10:47:13 10:39:01 1 26.81 0.00 1.06 0.02 0.07 72.05 10:47:13 10:39:01 2 29.80 0.00 0.96 0.07 0.07 69.11 10:47:13 10:39:01 3 26.92 0.00 1.04 0.03 0.07 71.94 10:47:13 10:47:13 10:39:01 CPU %user %nice %system %iowait %steal %idle 10:47:13 10:40:01 all 37.08 0.00 0.92 0.22 0.09 61.68 10:47:13 10:40:01 0 38.59 0.00 0.57 0.00 0.10 60.74 10:47:13 10:40:01 1 36.39 0.00 1.07 0.17 0.08 62.29 10:47:13 10:40:01 2 36.23 0.00 0.92 0.52 0.10 62.23 10:47:13 10:40:01 3 37.13 0.00 1.14 0.20 0.08 61.45 10:47:13 10:41:01 all 6.51 0.00 0.28 0.03 0.07 93.10 10:47:13 10:41:01 0 6.62 0.00 0.34 0.00 0.07 92.98 10:47:13 10:41:01 1 6.29 0.00 0.32 0.02 0.07 93.31 10:47:13 10:41:01 2 5.85 0.00 0.20 0.10 0.07 93.78 10:47:13 10:41:01 3 7.30 0.00 0.28 0.02 0.08 92.32 10:47:13 10:42:01 all 5.82 0.00 0.26 0.03 0.06 93.83 10:47:13 10:42:01 0 5.84 0.00 0.23 0.00 0.07 93.86 10:47:13 10:42:01 1 5.65 0.00 0.25 0.00 0.05 94.05 10:47:13 10:42:01 2 6.09 0.00 0.27 0.10 0.07 93.47 10:47:13 10:42:01 3 5.70 0.00 0.29 0.02 0.07 93.93 10:47:13 10:43:01 all 4.93 0.00 0.28 0.01 0.06 94.71 10:47:13 10:43:01 0 4.85 0.00 0.23 0.00 0.03 94.88 10:47:13 10:43:01 1 4.64 0.00 0.35 0.00 0.08 94.92 10:47:13 10:43:01 2 5.18 0.00 0.30 0.03 0.07 94.42 10:47:13 10:43:01 3 5.06 0.00 0.23 0.02 0.07 94.63 10:47:13 10:44:01 all 0.54 0.00 0.10 0.01 0.06 99.30 10:47:13 10:44:01 0 0.88 0.00 0.05 0.00 0.03 99.03 10:47:13 10:44:01 1 0.27 0.00 0.17 0.00 0.07 99.50 10:47:13 10:44:01 2 0.82 0.00 0.10 0.02 0.08 98.98 10:47:13 10:44:01 3 0.18 0.00 0.07 0.02 0.05 99.68 10:47:13 10:45:01 all 0.53 0.00 0.09 0.01 0.07 99.30 10:47:13 10:45:01 0 0.77 0.00 0.08 0.00 0.07 99.08 10:47:13 10:45:01 1 0.22 0.00 0.12 0.00 0.08 99.58 10:47:13 10:45:01 2 0.47 0.00 0.10 0.03 0.07 99.33 10:47:13 10:45:01 3 0.65 0.00 0.07 0.02 0.07 99.20 10:47:13 10:46:01 all 0.58 0.00 0.13 0.01 0.06 99.22 10:47:13 10:46:01 0 0.37 0.00 0.10 0.00 0.03 99.50 10:47:13 10:46:01 1 0.74 0.00 0.08 0.00 0.07 99.11 10:47:13 10:46:01 2 0.69 0.00 0.22 0.02 0.07 99.01 10:47:13 10:46:01 3 0.54 0.00 0.10 0.02 0.07 99.28 10:47:13 10:47:01 all 27.43 0.00 1.67 1.38 0.07 69.45 10:47:13 10:47:01 0 22.36 0.00 1.93 1.90 0.07 73.74 10:47:13 10:47:01 1 38.76 0.00 1.80 0.97 0.08 58.39 10:47:13 10:47:01 2 18.57 0.00 1.38 0.24 0.07 79.75 10:47:13 10:47:01 3 30.06 0.00 1.58 2.40 0.07 65.89 10:47:13 Average: all 19.46 0.08 0.93 0.27 0.08 79.19 10:47:13 Average: 0 19.27 0.09 0.93 0.28 0.08 79.35 10:47:13 Average: 1 19.82 0.09 0.96 0.23 0.08 78.82 10:47:13 Average: 2 19.49 0.07 0.91 0.27 0.08 79.18 10:47:13 Average: 3 19.25 0.06 0.90 0.33 0.08 79.38 10:47:13 10:47:13 10:47:13