07:06:49 Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/transportpce/+/113558 07:06:49 Running as SYSTEM 07:06:49 [EnvInject] - Loading node environment variables. 07:06:49 Building remotely on prd-ubuntu2004-docker-4c-16g-23715 (ubuntu2004-docker-4c-16g) in workspace /w/workspace/transportpce-tox-verify-transportpce-master 07:06:49 [ssh-agent] Looking for ssh-agent implementation... 07:06:49 [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) 07:06:49 $ ssh-agent 07:06:49 SSH_AUTH_SOCK=/tmp/ssh-kZkxItAqQFhq/agent.13892 07:06:49 SSH_AGENT_PID=13896 07:06:49 [ssh-agent] Started. 07:06:49 Running ssh-add (command line suppressed) 07:06:49 Identity added: /w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_3241682350511156132.key (/w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_3241682350511156132.key) 07:06:49 [ssh-agent] Using credentials jenkins (jenkins-ssh) 07:06:50 The recommended git tool is: NONE 07:06:52 using credential jenkins-ssh 07:06:53 Wiping out workspace first. 07:06:53 Cloning the remote Git repository 07:06:53 Cloning repository git://devvexx.opendaylight.org/mirror/transportpce 07:06:53 > git init /w/workspace/transportpce-tox-verify-transportpce-master # timeout=10 07:06:53 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 07:06:53 > git --version # timeout=10 07:06:53 > git --version # 'git version 2.25.1' 07:06:53 using GIT_SSH to set credentials jenkins-ssh 07:06:53 Verifying host key using known hosts file 07:06:53 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. 07:06:53 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce +refs/heads/*:refs/remotes/origin/* # timeout=10 07:06:56 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 07:06:56 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 07:06:57 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 07:06:57 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 07:06:57 using GIT_SSH to set credentials jenkins-ssh 07:06:57 Verifying host key using known hosts file 07:06:57 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. 07:06:57 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce refs/changes/58/113558/2 # timeout=10 07:06:57 > git rev-parse 9ca32230960be2b4697e875fd7339c8c209b348b^{commit} # timeout=10 07:06:57 JENKINS-19022: warning: possible memory leak due to Git plugin usage; see: https://plugins.jenkins.io/git/#remove-git-plugin-buildsbybranch-builddata-script 07:06:57 Checking out Revision 9ca32230960be2b4697e875fd7339c8c209b348b (refs/changes/58/113558/2) 07:06:57 > git config core.sparsecheckout # timeout=10 07:06:57 > git checkout -f 9ca32230960be2b4697e875fd7339c8c209b348b # timeout=10 07:07:00 Commit message: "Link node id to node name conversion in TAPI" 07:07:00 > git rev-parse FETCH_HEAD^{commit} # timeout=10 07:07:01 > git rev-list --no-walk ee77c94d73171d4eb7a8f85abdfd387dc14ffd3a # timeout=10 07:07:01 > git remote # timeout=10 07:07:01 > git submodule init # timeout=10 07:07:01 > git submodule sync # timeout=10 07:07:01 > git config --get remote.origin.url # timeout=10 07:07:01 > git submodule init # timeout=10 07:07:01 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 07:07:01 ERROR: No submodules found. 07:07:01 provisioning config files... 07:07:01 copy managed file [npmrc] to file:/home/jenkins/.npmrc 07:07:01 copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf 07:07:01 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins13153712753532117543.sh 07:07:01 ---> python-tools-install.sh 07:07:01 Setup pyenv: 07:07:01 * system (set by /opt/pyenv/version) 07:07:01 * 3.8.13 (set by /opt/pyenv/version) 07:07:01 * 3.9.13 (set by /opt/pyenv/version) 07:07:01 * 3.10.13 (set by /opt/pyenv/version) 07:07:01 * 3.11.7 (set by /opt/pyenv/version) 07:07:06 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-MWHu 07:07:06 lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv 07:07:15 lf-activate-venv(): INFO: Installing: lftools 07:07:43 lf-activate-venv(): INFO: Adding /tmp/venv-MWHu/bin to PATH 07:07:43 Generating Requirements File 07:08:02 Python 3.11.7 07:08:02 pip 24.2 from /tmp/venv-MWHu/lib/python3.11/site-packages/pip (python 3.11) 07:08:03 appdirs==1.4.4 07:08:03 argcomplete==3.5.0 07:08:03 aspy.yaml==1.3.0 07:08:03 attrs==24.2.0 07:08:03 autopage==0.5.2 07:08:03 beautifulsoup4==4.12.3 07:08:03 boto3==1.35.21 07:08:03 botocore==1.35.21 07:08:03 bs4==0.0.2 07:08:03 cachetools==5.5.0 07:08:03 certifi==2024.8.30 07:08:03 cffi==1.17.1 07:08:03 cfgv==3.4.0 07:08:03 chardet==5.2.0 07:08:03 charset-normalizer==3.3.2 07:08:03 click==8.1.7 07:08:03 cliff==4.7.0 07:08:03 cmd2==2.4.3 07:08:03 cryptography==3.3.2 07:08:03 debtcollector==3.0.0 07:08:03 decorator==5.1.1 07:08:03 defusedxml==0.7.1 07:08:03 Deprecated==1.2.14 07:08:03 distlib==0.3.8 07:08:03 dnspython==2.6.1 07:08:03 docker==4.2.2 07:08:03 dogpile.cache==1.3.3 07:08:03 email_validator==2.2.0 07:08:03 filelock==3.16.1 07:08:03 future==1.0.0 07:08:03 gitdb==4.0.11 07:08:03 GitPython==3.1.43 07:08:03 google-auth==2.34.0 07:08:03 httplib2==0.22.0 07:08:03 identify==2.6.1 07:08:03 idna==3.10 07:08:03 importlib-resources==1.5.0 07:08:03 iso8601==2.1.0 07:08:03 Jinja2==3.1.4 07:08:03 jmespath==1.0.1 07:08:03 jsonpatch==1.33 07:08:03 jsonpointer==3.0.0 07:08:03 jsonschema==4.23.0 07:08:03 jsonschema-specifications==2023.12.1 07:08:03 keystoneauth1==5.8.0 07:08:03 kubernetes==30.1.0 07:08:03 lftools==0.37.10 07:08:03 lxml==5.3.0 07:08:03 MarkupSafe==2.1.5 07:08:03 msgpack==1.1.0 07:08:03 multi_key_dict==2.0.3 07:08:03 munch==4.0.0 07:08:03 netaddr==1.3.0 07:08:03 netifaces==0.11.0 07:08:03 niet==1.4.2 07:08:03 nodeenv==1.9.1 07:08:03 oauth2client==4.1.3 07:08:03 oauthlib==3.2.2 07:08:03 openstacksdk==4.0.0 07:08:03 os-client-config==2.1.0 07:08:03 os-service-types==1.7.0 07:08:03 osc-lib==3.1.0 07:08:03 oslo.config==9.6.0 07:08:03 oslo.context==5.6.0 07:08:03 oslo.i18n==6.4.0 07:08:03 oslo.log==6.1.2 07:08:03 oslo.serialization==5.5.0 07:08:03 oslo.utils==7.3.0 07:08:03 packaging==24.1 07:08:03 pbr==6.1.0 07:08:03 platformdirs==4.3.6 07:08:03 prettytable==3.11.0 07:08:03 pyasn1==0.6.1 07:08:03 pyasn1_modules==0.4.1 07:08:03 pycparser==2.22 07:08:03 pygerrit2==2.0.15 07:08:03 PyGithub==2.4.0 07:08:03 PyJWT==2.9.0 07:08:03 PyNaCl==1.5.0 07:08:03 pyparsing==2.4.7 07:08:03 pyperclip==1.9.0 07:08:03 pyrsistent==0.20.0 07:08:03 python-cinderclient==9.6.0 07:08:03 python-dateutil==2.9.0.post0 07:08:03 python-heatclient==4.0.0 07:08:03 python-jenkins==1.8.2 07:08:03 python-keystoneclient==5.5.0 07:08:03 python-magnumclient==4.7.0 07:08:03 python-openstackclient==7.1.1 07:08:03 python-swiftclient==4.6.0 07:08:03 PyYAML==6.0.2 07:08:03 referencing==0.35.1 07:08:03 requests==2.32.3 07:08:03 requests-oauthlib==2.0.0 07:08:03 requestsexceptions==1.4.0 07:08:03 rfc3986==2.0.0 07:08:03 rpds-py==0.20.0 07:08:03 rsa==4.9 07:08:03 ruamel.yaml==0.18.6 07:08:03 ruamel.yaml.clib==0.2.8 07:08:03 s3transfer==0.10.2 07:08:03 simplejson==3.19.3 07:08:03 six==1.16.0 07:08:03 smmap==5.0.1 07:08:03 soupsieve==2.6 07:08:03 stevedore==5.3.0 07:08:03 tabulate==0.9.0 07:08:03 toml==0.10.2 07:08:03 tomlkit==0.13.2 07:08:03 tqdm==4.66.5 07:08:03 typing_extensions==4.12.2 07:08:03 tzdata==2024.1 07:08:03 urllib3==1.26.20 07:08:03 virtualenv==20.26.5 07:08:03 wcwidth==0.2.13 07:08:03 websocket-client==1.8.0 07:08:03 wrapt==1.16.0 07:08:03 xdg==6.0.0 07:08:03 xmltodict==0.13.0 07:08:03 yq==3.4.3 07:08:03 [EnvInject] - Injecting environment variables from a build step. 07:08:03 [EnvInject] - Injecting as environment variables the properties content 07:08:03 PYTHON=python3 07:08:03 07:08:03 [EnvInject] - Variables injected successfully. 07:08:03 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins3960184757386728868.sh 07:08:03 ---> tox-install.sh 07:08:03 + source /home/jenkins/lf-env.sh 07:08:03 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 07:08:03 ++ mktemp -d /tmp/venv-XXXX 07:08:03 + lf_venv=/tmp/venv-SX2M 07:08:03 + local venv_file=/tmp/.os_lf_venv 07:08:03 + local python=python3 07:08:03 + local options 07:08:03 + local set_path=true 07:08:03 + local install_args= 07:08: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 07:08:03 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 07:08:03 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 07:08:03 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 07:08:03 + true 07:08:03 + case $1 in 07:08:03 + venv_file=/tmp/.toxenv 07:08:03 + shift 2 07:08:03 + true 07:08:03 + case $1 in 07:08:03 + shift 07:08:03 + break 07:08:03 + case $python in 07:08:03 + local pkg_list= 07:08:03 + [[ -d /opt/pyenv ]] 07:08:03 + echo 'Setup pyenv:' 07:08:03 Setup pyenv: 07:08:03 + export PYENV_ROOT=/opt/pyenv 07:08:03 + PYENV_ROOT=/opt/pyenv 07:08:03 + 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 07:08:03 + 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 07:08:03 + pyenv versions 07:08:03 system 07:08:03 3.8.13 07:08:03 3.9.13 07:08:03 3.10.13 07:08:03 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 07:08:03 + command -v pyenv 07:08:03 ++ pyenv init - --no-rehash 07:08:03 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 07:08:03 for i in ${!paths[@]}; do 07:08:03 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 07:08:03 fi; done; 07:08:03 echo "${paths[*]}"'\'')" 07:08:03 export PATH="/opt/pyenv/shims:${PATH}" 07:08:03 export PYENV_SHELL=bash 07:08:03 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 07:08:03 pyenv() { 07:08:03 local command 07:08:03 command="${1:-}" 07:08:03 if [ "$#" -gt 0 ]; then 07:08:03 shift 07:08:03 fi 07:08:03 07:08:03 case "$command" in 07:08:03 rehash|shell) 07:08:03 eval "$(pyenv "sh-$command" "$@")" 07:08:03 ;; 07:08:03 *) 07:08:03 command pyenv "$command" "$@" 07:08:03 ;; 07:08:03 esac 07:08:03 }' 07:08:03 +++ bash --norc -ec 'IFS=:; paths=($PATH); 07:08:03 for i in ${!paths[@]}; do 07:08:03 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 07:08:03 fi; done; 07:08:03 echo "${paths[*]}"' 07:08:03 ++ 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 07:08:03 ++ 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 07:08:03 ++ 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 07:08:03 ++ export PYENV_SHELL=bash 07:08:03 ++ PYENV_SHELL=bash 07:08:03 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 07:08:03 +++ complete -F _pyenv pyenv 07:08:03 ++ lf-pyver python3 07:08:03 ++ local py_version_xy=python3 07:08:03 ++ local py_version_xyz= 07:08:03 ++ pyenv versions 07:08:03 ++ local command 07:08:03 ++ command=versions 07:08:03 ++ '[' 1 -gt 0 ']' 07:08:03 ++ shift 07:08:03 ++ case "$command" in 07:08:03 ++ command pyenv versions 07:08:03 ++ pyenv versions 07:08:03 ++ sed 's/^[ *]* //' 07:08:03 ++ grep -E '^[0-9.]*[0-9]$' 07:08:03 ++ awk '{ print $1 }' 07:08:03 ++ [[ ! -s /tmp/.pyenv_versions ]] 07:08:03 +++ grep '^3' /tmp/.pyenv_versions 07:08:03 +++ sort -V 07:08:03 +++ tail -n 1 07:08:03 ++ py_version_xyz=3.11.7 07:08:03 ++ [[ -z 3.11.7 ]] 07:08:03 ++ echo 3.11.7 07:08:03 ++ return 0 07:08:03 + pyenv local 3.11.7 07:08:03 + local command 07:08:03 + command=local 07:08:03 + '[' 2 -gt 0 ']' 07:08:03 + shift 07:08:03 + case "$command" in 07:08:03 + command pyenv local 3.11.7 07:08:03 + pyenv local 3.11.7 07:08:03 + for arg in "$@" 07:08:03 + case $arg in 07:08:03 + pkg_list+='tox ' 07:08:03 + for arg in "$@" 07:08:03 + case $arg in 07:08:03 + pkg_list+='virtualenv ' 07:08:03 + for arg in "$@" 07:08:03 + case $arg in 07:08:03 + pkg_list+='urllib3~=1.26.15 ' 07:08:03 + [[ -f /tmp/.toxenv ]] 07:08:03 + [[ ! -f /tmp/.toxenv ]] 07:08:03 + [[ -n '' ]] 07:08:03 + python3 -m venv /tmp/venv-SX2M 07:08:07 + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-SX2M' 07:08:07 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-SX2M 07:08:07 + echo /tmp/venv-SX2M 07:08:07 + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' 07:08:07 lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv 07:08:07 + /tmp/venv-SX2M/bin/python3 -m pip install --upgrade --quiet pip virtualenv 07:08:10 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 07:08:10 + echo 'lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 ' 07:08:10 lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 07:08:10 + /tmp/venv-SX2M/bin/python3 -m pip install --upgrade --quiet --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 07:08:13 + type python3 07:08:13 + true 07:08:13 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-SX2M/bin to PATH' 07:08:13 lf-activate-venv(): INFO: Adding /tmp/venv-SX2M/bin to PATH 07:08:13 + PATH=/tmp/venv-SX2M/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 07:08:13 + return 0 07:08:13 + python3 --version 07:08:13 Python 3.11.7 07:08:13 + python3 -m pip --version 07:08:13 pip 24.2 from /tmp/venv-SX2M/lib/python3.11/site-packages/pip (python 3.11) 07:08:13 + python3 -m pip freeze 07:08:13 cachetools==5.5.0 07:08:13 chardet==5.2.0 07:08:13 colorama==0.4.6 07:08:13 distlib==0.3.8 07:08:13 filelock==3.16.1 07:08:13 packaging==24.1 07:08:13 platformdirs==4.3.6 07:08:13 pluggy==1.5.0 07:08:13 pyproject-api==1.7.2 07:08:13 tox==4.19.0 07:08:13 urllib3==1.26.20 07:08:13 virtualenv==20.26.5 07:08:13 [transportpce-tox-verify-transportpce-master] $ /bin/sh -xe /tmp/jenkins7880895462745882743.sh 07:08:13 [EnvInject] - Injecting environment variables from a build step. 07:08:13 [EnvInject] - Injecting as environment variables the properties content 07:08:13 PARALLEL=True 07:08:13 07:08:13 [EnvInject] - Variables injected successfully. 07:08:13 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins12279128620918288777.sh 07:08:13 ---> tox-run.sh 07:08:13 + 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 07:08:13 + ARCHIVE_TOX_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 07:08:13 + ARCHIVE_DOC_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 07:08:13 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 07:08:13 + cd /w/workspace/transportpce-tox-verify-transportpce-master/. 07:08:13 + source /home/jenkins/lf-env.sh 07:08:13 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 07:08:13 ++ mktemp -d /tmp/venv-XXXX 07:08:13 + lf_venv=/tmp/venv-nFfR 07:08:13 + local venv_file=/tmp/.os_lf_venv 07:08:13 + local python=python3 07:08:13 + local options 07:08:13 + local set_path=true 07:08:13 + local install_args= 07:08:13 ++ 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 07:08:13 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 07:08:13 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 07:08:13 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 07:08:13 + true 07:08:13 + case $1 in 07:08:13 + venv_file=/tmp/.toxenv 07:08:13 + shift 2 07:08:13 + true 07:08:13 + case $1 in 07:08:13 + shift 07:08:13 + break 07:08:13 + case $python in 07:08:13 + local pkg_list= 07:08:13 + [[ -d /opt/pyenv ]] 07:08:13 + echo 'Setup pyenv:' 07:08:13 Setup pyenv: 07:08:13 + export PYENV_ROOT=/opt/pyenv 07:08:13 + PYENV_ROOT=/opt/pyenv 07:08:13 + 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 07:08:13 + 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 07:08:13 + pyenv versions 07:08:13 system 07:08:13 3.8.13 07:08:13 3.9.13 07:08:13 3.10.13 07:08:13 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 07:08:13 + command -v pyenv 07:08:13 ++ pyenv init - --no-rehash 07:08:13 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 07:08:13 for i in ${!paths[@]}; do 07:08:13 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 07:08:13 fi; done; 07:08:13 echo "${paths[*]}"'\'')" 07:08:13 export PATH="/opt/pyenv/shims:${PATH}" 07:08:13 export PYENV_SHELL=bash 07:08:13 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 07:08:13 pyenv() { 07:08:13 local command 07:08:13 command="${1:-}" 07:08:13 if [ "$#" -gt 0 ]; then 07:08:13 shift 07:08:13 fi 07:08:13 07:08:13 case "$command" in 07:08:13 rehash|shell) 07:08:13 eval "$(pyenv "sh-$command" "$@")" 07:08:13 ;; 07:08:13 *) 07:08:13 command pyenv "$command" "$@" 07:08:13 ;; 07:08:13 esac 07:08:13 }' 07:08:13 +++ bash --norc -ec 'IFS=:; paths=($PATH); 07:08:13 for i in ${!paths[@]}; do 07:08:13 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 07:08:13 fi; done; 07:08:13 echo "${paths[*]}"' 07:08:13 ++ 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 07:08:13 ++ 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 07:08:13 ++ 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 07:08:13 ++ export PYENV_SHELL=bash 07:08:13 ++ PYENV_SHELL=bash 07:08:13 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 07:08:13 +++ complete -F _pyenv pyenv 07:08:13 ++ lf-pyver python3 07:08:13 ++ local py_version_xy=python3 07:08:13 ++ local py_version_xyz= 07:08:13 ++ pyenv versions 07:08:13 ++ local command 07:08:13 ++ command=versions 07:08:13 ++ '[' 1 -gt 0 ']' 07:08:13 ++ shift 07:08:13 ++ case "$command" in 07:08:13 ++ command pyenv versions 07:08:13 ++ pyenv versions 07:08:13 ++ awk '{ print $1 }' 07:08:13 ++ grep -E '^[0-9.]*[0-9]$' 07:08:13 ++ sed 's/^[ *]* //' 07:08:13 ++ [[ ! -s /tmp/.pyenv_versions ]] 07:08:13 +++ grep '^3' /tmp/.pyenv_versions 07:08:13 +++ sort -V 07:08:13 +++ tail -n 1 07:08:13 ++ py_version_xyz=3.11.7 07:08:13 ++ [[ -z 3.11.7 ]] 07:08:13 ++ echo 3.11.7 07:08:13 ++ return 0 07:08:13 + pyenv local 3.11.7 07:08:13 + local command 07:08:13 + command=local 07:08:13 + '[' 2 -gt 0 ']' 07:08:13 + shift 07:08:13 + case "$command" in 07:08:13 + command pyenv local 3.11.7 07:08:13 + pyenv local 3.11.7 07:08:13 + for arg in "$@" 07:08:13 + case $arg in 07:08:13 + pkg_list+='tox ' 07:08:13 + for arg in "$@" 07:08:13 + case $arg in 07:08:13 + pkg_list+='virtualenv ' 07:08:13 + for arg in "$@" 07:08:13 + case $arg in 07:08:13 + pkg_list+='urllib3~=1.26.15 ' 07:08:13 + [[ -f /tmp/.toxenv ]] 07:08:13 ++ cat /tmp/.toxenv 07:08:13 + lf_venv=/tmp/venv-SX2M 07:08:13 + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-SX2M from' file:/tmp/.toxenv 07:08:13 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-SX2M from file:/tmp/.toxenv 07:08:13 + /tmp/venv-SX2M/bin/python3 -m pip install --upgrade --quiet pip virtualenv 07:08:14 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 07:08:14 + echo 'lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 ' 07:08:14 lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 07:08:14 + /tmp/venv-SX2M/bin/python3 -m pip install --upgrade --quiet --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 07:08:15 + type python3 07:08:15 + true 07:08:15 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-SX2M/bin to PATH' 07:08:15 lf-activate-venv(): INFO: Adding /tmp/venv-SX2M/bin to PATH 07:08:15 + PATH=/tmp/venv-SX2M/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 07:08:15 + return 0 07:08:15 + [[ -d /opt/pyenv ]] 07:08:15 + echo '---> Setting up pyenv' 07:08:15 ---> Setting up pyenv 07:08:15 + export PYENV_ROOT=/opt/pyenv 07:08:15 + PYENV_ROOT=/opt/pyenv 07:08:15 + export PATH=/opt/pyenv/bin:/tmp/venv-SX2M/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 07:08:15 + PATH=/opt/pyenv/bin:/tmp/venv-SX2M/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 07:08:15 ++ pwd 07:08:15 + PYTHONPATH=/w/workspace/transportpce-tox-verify-transportpce-master 07:08:15 + export PYTHONPATH 07:08:15 + export TOX_TESTENV_PASSENV=PYTHONPATH 07:08:15 + TOX_TESTENV_PASSENV=PYTHONPATH 07:08:15 + tox --version 07:08:15 4.19.0 from /tmp/venv-SX2M/lib/python3.11/site-packages/tox/__init__.py 07:08:16 + PARALLEL=True 07:08:16 + TOX_OPTIONS_LIST= 07:08:16 + [[ -n '' ]] 07:08:16 + case ${PARALLEL,,} in 07:08:16 + TOX_OPTIONS_LIST=' --parallel auto --parallel-live' 07:08:16 + tox --parallel auto --parallel-live 07:08:16 + tee -a /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tox.log 07:08:17 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 07:08:17 docs: install_deps> python -I -m pip install -r docs/requirements.txt 07:08:17 docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt 07:08:17 checkbashisms: freeze> python -m pip freeze --all 07:08:18 checkbashisms: pip==24.2,setuptools==75.1.0,wheel==0.44.0 07:08:18 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 07:08:18 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)' 07:08:18 checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + 07:08:19 script ./reflectwarn.sh does not appear to have a #! interpreter line; 07:08:19 you may get strange results 07:08:19 checkbashisms: OK ✔ in 3.12 seconds 07:08:19 pre-commit: install_deps> python -I -m pip install pre-commit 07:08:22 pre-commit: freeze> python -m pip freeze --all 07:08:22 pre-commit: cfgv==3.4.0,distlib==0.3.8,filelock==3.16.1,identify==2.6.1,nodeenv==1.9.1,pip==24.2,platformdirs==4.3.6,pre-commit==3.8.0,PyYAML==6.0.2,setuptools==75.1.0,virtualenv==20.26.5,wheel==0.44.0 07:08:22 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 07:08:22 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)' 07:08:22 /usr/bin/cpan 07:08:22 pre-commit: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure 07:08:22 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 07:08:22 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. 07:08:23 buildcontroller: freeze> python -m pip freeze --all 07:08:23 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. 07:08:23 buildcontroller: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 07:08:23 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh 07:08:23 + update-java-alternatives -l 07:08:23 java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 07:08:23 java-1.12.0-openjdk-amd64 1211 /usr/lib/jvm/java-1.12.0-openjdk-amd64 07:08:23 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 07:08:23 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 07:08:23 java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64 07:08:23 + sudo update-java-alternatives -s java-1.21.0-openjdk-amd64 07:08:23 [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. 07:08:23 + java -version 07:08:23 + sed -n ;s/.* version "\(.*\)\.\(.*\)\..*".*$/\1/p; 07:08:23 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. 07:08:24 + JAVA_VER=21 07:08:24 + echo 21 07:08:24 21 07:08:24 + javac -version 07:08:24 + sed -n ;s/javac \(.*\)\.\(.*\)\..*.*$/\1/p; 07:08:24 [INFO] Initializing environment for https://github.com/perltidy/perltidy. 07:08:24 21 07:08:24 ok, java is 21 or newer 07:08:24 + JAVAC_VER=21 07:08:24 + echo 21 07:08:24 + [ 21 -ge 21 ] 07:08:24 + [ 21 -ge 21 ] 07:08:24 + echo ok, java is 21 or newer 07:08:24 + wget -nv https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz -P /tmp 07:08:25 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 07:08:25 [INFO] Once installed this environment will be reused. 07:08:25 [INFO] This may take a few minutes... 07:08:25 2024-09-18 07:08:25 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] 07:08:25 + sudo mkdir -p /opt 07:08:25 + sudo tar xf /tmp/apache-maven-3.9.8-bin.tar.gz -C /opt 07:08:25 + sudo ln -s /opt/apache-maven-3.9.8 /opt/maven 07:08:25 + sudo ln -s /opt/maven/bin/mvn /usr/bin/mvn 07:08:25 + mvn --version 07:08:26 Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256) 07:08:26 Maven home: /opt/maven 07:08:26 Java version: 21.0.4, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 07:08:26 Default locale: en, platform encoding: UTF-8 07:08:26 OS name: "linux", version: "5.4.0-190-generic", arch: "amd64", family: "unix" 07:08:26 NOTE: Picked up JDK_JAVA_OPTIONS: 07:08:26 --add-opens=java.base/java.io=ALL-UNNAMED 07:08:26 --add-opens=java.base/java.lang=ALL-UNNAMED 07:08:26 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 07:08:26 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 07:08:26 --add-opens=java.base/java.net=ALL-UNNAMED 07:08:26 --add-opens=java.base/java.nio=ALL-UNNAMED 07:08:26 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 07:08:26 --add-opens=java.base/java.nio.file=ALL-UNNAMED 07:08:26 --add-opens=java.base/java.util=ALL-UNNAMED 07:08:26 --add-opens=java.base/java.util.jar=ALL-UNNAMED 07:08:26 --add-opens=java.base/java.util.stream=ALL-UNNAMED 07:08:26 --add-opens=java.base/java.util.zip=ALL-UNNAMED 07:08:26 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 07:08:26 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 07:08:26 -Xlog:disable 07:08:28 [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. 07:08:28 [INFO] Once installed this environment will be reused. 07:08:28 [INFO] This may take a few minutes... 07:08:35 [INFO] Installing environment for https://github.com/pre-commit/mirrors-autopep8. 07:08:35 [INFO] Once installed this environment will be reused. 07:08:35 [INFO] This may take a few minutes... 07:08:38 [INFO] Installing environment for https://github.com/perltidy/perltidy. 07:08:38 [INFO] Once installed this environment will be reused. 07:08:38 [INFO] This may take a few minutes... 07:08:43 docs: freeze> python -m pip freeze --all 07:08:44 docs: alabaster==0.7.16,attrs==24.2.0,babel==2.16.0,blockdiag==3.0.0,certifi==2024.8.30,charset-normalizer==3.3.2,contourpy==1.3.0,cycler==0.12.1,docutils==0.20.1,fonttools==4.53.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==2.1.5,matplotlib==3.9.2,numpy==2.1.1,nwdiag==3.0.0,packaging==24.1,pillow==10.4.0,pip==24.2,Pygments==2.18.0,pyparsing==3.1.4,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.1.0,six==1.16.0,snowballstemmer==2.2.0,Sphinx==7.4.7,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==2.0.0,sphinx-tabs==3.4.5,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 07:08:44 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 07:08:44 docs-linkcheck: freeze> python -m pip freeze --all 07:08:44 docs-linkcheck: alabaster==0.7.16,attrs==24.2.0,babel==2.16.0,blockdiag==3.0.0,certifi==2024.8.30,charset-normalizer==3.3.2,contourpy==1.3.0,cycler==0.12.1,docutils==0.20.1,fonttools==4.53.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==2.1.5,matplotlib==3.9.2,numpy==2.1.1,nwdiag==3.0.0,packaging==24.1,pillow==10.4.0,pip==24.2,Pygments==2.18.0,pyparsing==3.1.4,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.1.0,six==1.16.0,snowballstemmer==2.2.0,Sphinx==7.4.7,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==2.0.0,sphinx-tabs==3.4.5,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 07:08:44 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 07:08:45 /w/workspace/transportpce-tox-verify-transportpce-master/.tox/docs-linkcheck/lib/python3.11/site-packages/sphinx/builders/linkcheck.py:86: RemovedInSphinx80Warning: The default value for 'linkcheck_report_timeouts_as_broken' will change to False in Sphinx 8, meaning that request timeouts will be reported with a new 'timeout' status, instead of as 'broken'. This is intended to provide more detail as to the failure mode. See https://github.com/sphinx-doc/sphinx/issues/11868 for details. 07:08:45 warnings.warn(deprecation_msg, RemovedInSphinx80Warning, stacklevel=1) 07:08:46 docs: OK ✔ in 30.1 seconds 07:08:46 pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' 07:08:49 pylint: freeze> python -m pip freeze --all 07:08:50 trim trailing whitespace.................................................pylint: astroid==3.2.4,dill==0.3.8,isort==5.13.2,mccabe==0.7.0,pip==24.2,platformdirs==4.3.6,pylint==3.2.7,setuptools==75.1.0,tomlkit==0.13.2,wheel==0.44.0 07:08:50 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}$' '{}' + 07:08:50 Passed 07:08:50 Tabs remover.............................................................Passed 07:08:50 autopep8.................................................................Passed 07:08:54 perltidy.................................................................Passed 07:08:55 pre-commit: commands[3] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run gitlint-ci --hook-stage manual 07:08:55 [INFO] Installing environment for https://github.com/jorisroovers/gitlint. 07:08:55 [INFO] Once installed this environment will be reused. 07:08:55 [INFO] This may take a few minutes... 07:09:02 gitlint..................................................................Passed 07:09:11 07:09:11 ------------------------------------ 07:09:11 Your code has been rated at 10.00/10 07:09:11 07:10:03 pre-commit: OK ✔ in 42.97 seconds 07:10:03 pylint: OK ✔ in 26.67 seconds 07:10:03 docs-linkcheck: OK ✔ in 1 minute 35.9 seconds 07:10:03 buildcontroller: OK ✔ in 1 minute 45.89 seconds 07:10:03 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 07:10:03 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 07:10:03 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 07:10:03 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 07:10:08 build_karaf_tests121: freeze> python -m pip freeze --all 07:10:08 build_karaf_tests221: freeze> python -m pip freeze --all 07:10:08 sims: freeze> python -m pip freeze --all 07:10:08 build_karaf_tests121: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 07:10:08 build_karaf_tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 07:10:08 build_karaf_tests221: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 07:10:08 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 07:10:08 NOTE: Picked up JDK_JAVA_OPTIONS: 07:10:08 --add-opens=java.base/java.io=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.lang=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.net=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.nio=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.nio.file=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.util=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.util.jar=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.util.stream=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.util.zip=ALL-UNNAMED 07:10:08 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 07:10:08 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 07:10:08 -Xlog:disable 07:10:08 NOTE: Picked up JDK_JAVA_OPTIONS: 07:10:08 --add-opens=java.base/java.io=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.lang=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.net=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.nio=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.nio.file=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.util=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.util.jar=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.util.stream=ALL-UNNAMED 07:10:08 --add-opens=java.base/java.util.zip=ALL-UNNAMED 07:10:08 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 07:10:08 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 07:10:08 -Xlog:disable 07:10:08 sims: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 07:10:08 sims: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_lightynode.sh 07:10:08 Using lighynode version 20.1.0.2 07:10:08 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory 07:10:12 sims: OK ✔ in 9.84 seconds 07:10:12 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 07:10:30 build_karaf_tests71: freeze> python -m pip freeze --all 07:10:30 build_karaf_tests71: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 07:10:30 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 07:10:31 NOTE: Picked up JDK_JAVA_OPTIONS: 07:10:31 --add-opens=java.base/java.io=ALL-UNNAMED 07:10:31 --add-opens=java.base/java.lang=ALL-UNNAMED 07:10:31 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 07:10:31 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 07:10:31 --add-opens=java.base/java.net=ALL-UNNAMED 07:10:31 --add-opens=java.base/java.nio=ALL-UNNAMED 07:10:31 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 07:10:31 --add-opens=java.base/java.nio.file=ALL-UNNAMED 07:10:31 --add-opens=java.base/java.util=ALL-UNNAMED 07:10:31 --add-opens=java.base/java.util.jar=ALL-UNNAMED 07:10:31 --add-opens=java.base/java.util.stream=ALL-UNNAMED 07:10:31 --add-opens=java.base/java.util.zip=ALL-UNNAMED 07:10:31 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 07:10:31 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 07:10:31 -Xlog:disable 07:10:58 build_karaf_tests221: OK ✔ in 55.62 seconds 07:10:58 build_karaf_tests121: OK ✔ in 55.69 seconds 07:10:58 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 07:10:58 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 07:11:03 build_karaf_tests_hybrid: freeze> python -m pip freeze --all 07:11:03 tests_tapi: freeze> python -m pip freeze --all 07:11:03 tests_tapi: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 07:11:03 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi 07:11:03 using environment variables from ./karaf221.env 07:11:03 pytest -q transportpce_tests/tapi/test01_abstracted_topology.py 07:11:03 build_karaf_tests_hybrid: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 07:11:03 build_karaf_tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 07:11:03 NOTE: Picked up JDK_JAVA_OPTIONS: 07:11:03 --add-opens=java.base/java.io=ALL-UNNAMED 07:11:03 --add-opens=java.base/java.lang=ALL-UNNAMED 07:11:03 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 07:11:03 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 07:11:03 --add-opens=java.base/java.net=ALL-UNNAMED 07:11:03 --add-opens=java.base/java.nio=ALL-UNNAMED 07:11:03 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 07:11:03 --add-opens=java.base/java.nio.file=ALL-UNNAMED 07:11:03 --add-opens=java.base/java.util=ALL-UNNAMED 07:11:03 --add-opens=java.base/java.util.jar=ALL-UNNAMED 07:11:03 --add-opens=java.base/java.util.stream=ALL-UNNAMED 07:11:03 --add-opens=java.base/java.util.zip=ALL-UNNAMED 07:11:03 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 07:11:03 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 07:11:03 -Xlog:disable 07:11:13 build_karaf_tests71: OK ✔ in 58.63 seconds 07:11:13 testsPCE: freeze> python -m pip freeze --all 07:11:13 testsPCE: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.53.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==2.1.5,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==10.4.0,pip==24.2,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pyparsing==3.1.4,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 07:11:13 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce 07:11:13 pytest -q transportpce_tests/pce/test01_pce.py 07:12:13 ....................................... [100%] 07:13:17 20 passed in 122.75s (0:02:02) 07:13:17 pytest -q transportpce_tests/pce/test02_pce_400G.py 07:13:18 ...................... [100%] 07:13:59 9 passed in 41.80s 07:13:59 pytest -q transportpce_tests/pce/test03_gnpy.py 07:14:09 .............. [100%] 07:14:37 8 passed in 38.01s 07:14:37 pytest -q transportpce_tests/pce/test04_pce_bug_fix.py 07:14:53 ............ [100%] 07:14:58 50 passed in 234.43s (0:03:54) 07:14:58 pytest -q transportpce_tests/tapi/test02_full_topology.py 07:15:10 ... [100%] 07:15:15 3 passed in 37.96s 07:15:15 build_karaf_tests_hybrid: OK ✔ in 58.81 seconds 07:15:15 testsPCE: OK ✔ in 5 minutes 13.53 seconds 07:15:15 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 07:15:21 tests121: freeze> python -m pip freeze --all 07:15:21 tests121: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 07:15:21 tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 07:15:21 using environment variables from ./karaf121.env 07:15:21 pytest -q transportpce_tests/1.2.1/test01_portmapping.py 07:16:21 ............................................. [100%] 07:19:48 30 passed in 290.23s (0:04:50) 07:19:48 pytest -q transportpce_tests/tapi/test03_tapi_device_change_notifications.py 07:19:49 ...... [100%] 07:19:56 21 passed in 275.05s (0:04:35) 07:19:56 pytest -q transportpce_tests/1.2.1/test02_topo_portmapping.py 07:21:02 ................................................................. [100%] 07:23:51 6 passed in 234.25s (0:03:54) 07:23:51 pytest -q transportpce_tests/1.2.1/test03_topology.py 07:23:52 ........... [100%] 07:24:34 70 passed in 284.97s (0:04:44) 07:24:34 tests_tapi: OK ✔ in 13 minutes 36.24 seconds 07:24:34 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 07:24:46 tests71: freeze> python -m pip freeze --all 07:24:46 tests71: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 07:24:46 tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 07:24:46 using environment variables from ./karaf71.env 07:24:46 pytest -q transportpce_tests/7.1/test01_portmapping.py 07:26:28 E............EE........EE.....................E... [100%] 07:35:04 44 passed in 672.55s (0:11:12) 07:35:04 pytest -q transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py 07:36:38 EE.E.EFFFFFFFFFFFFFFFFFFFFEE [100%] 07:45:05 ==================================== ERRORS ==================================== 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_01_xpdr_device_connection _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_02_xpdr_device_connected _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_03_xpdr_portmapping_info _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_04_tpdr_portmapping_NETWORK1 _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_05_tpdr_portmapping_CLIENT1 _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_06_mpdr_portmapping_NETWORK1 _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_07_mpdr_portmapping_CLIENT1 _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_08_check_mccapprofile _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_09_mpdr_switching_pool _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_10_xpdr_device_disconnection _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_11_xpdr_device_disconnected _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 _ ERROR at setup of TransportPCE400GPortMappingTesting.test_12_xpdr_device_not_connected _ 07:45:05 07:45:05 cls = 07:45:05 07:45:05 @classmethod 07:45:05 def setUpClass(cls): 07:45:05 > cls.processes = test_utils.start_tpce() 07:45:05 07:45:05 transportpce_tests/7.1/test01_portmapping.py:32: 07:45:05 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:45:05 07:45:05 def start_tpce(): 07:45:05 if 'NO_ODL_STARTUP' in os.environ: 07:45:05 print('No OpenDaylight instance to start!') 07:45:05 return [] 07:45:05 print('starting OpenDaylight...') 07:45:05 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:45:05 process = start_lighty() 07:45:05 start_msg = LIGHTY_OK_START_MSG 07:45:05 else: 07:45:05 process = start_karaf() 07:45:05 start_msg = KARAF_OK_START_MSG 07:45:05 if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100): 07:45:05 print('OpenDaylight started !') 07:45:05 else: 07:45:05 print('OpenDaylight failed to start !') 07:45:05 shutdown_process(process) 07:45:05 for pid in process_list: 07:45:05 shutdown_process(pid) 07:45:05 > sys.exit(1) 07:45:05 E SystemExit: 1 07:45:05 07:45:05 transportpce_tests/common/test_utils.py:229: SystemExit 07:45:05 ---------------------------- Captured stdout setup ----------------------------- 07:45:05 starting OpenDaylight... 07:45:05 starting KARAF TransportPCE build... 07:45:05 Searching for pattern 'Transportpce controller started' in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:45:05 =========================== short test summary info ============================ 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_01_xpdr_device_connection 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_02_xpdr_device_connected 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_03_xpdr_portmapping_info 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_04_tpdr_portmapping_NETWORK1 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_05_tpdr_portmapping_CLIENT1 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_06_mpdr_portmapping_NETWORK1 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_07_mpdr_portmapping_CLIENT1 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_08_check_mccapprofile 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_09_mpdr_switching_pool 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_10_xpdr_device_disconnection 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_11_xpdr_device_disconnected 07:45:05 ERROR transportpce_tests/7.1/test01_portmapping.py::TransportPCE400GPortMappingTesting::test_12_xpdr_device_not_connected 07:45:05 12 errors in 1219.01s (0:20:19) 07:45:06 tests71: exit 1 (1219.25 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 pid=40741 07:45:06 tests71: FAIL ✖ in 20 minutes 31.93 seconds 07:45:06 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 07:45:12 tests221: freeze> python -m pip freeze --all 07:45:13 tests221: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 07:45:13 tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 07:45:13 using environment variables from ./karaf221.env 07:45:13 pytest -q transportpce_tests/2.2.1/test01_portmapping.py 07:45:26 F................................... [100%] 07:46:31 35 passed in 77.90s (0:01:17) 07:46:31 pytest -q transportpce_tests/2.2.1/test02_topo_portmapping.py 07:47:06 ...... [100%] 07:47:19 6 passed in 47.67s 07:47:19 pytest -q transportpce_tests/2.2.1/test03_topology.py 07:48:04 ............F. [100%] 07:48:32 =================================== FAILURES =================================== 07:48:32 _____________ TransportPCERendererTesting.test_03_rdm_portmapping ______________ 07:48:32 07:48:32 self = 07:48:32 method = 'GET' 07:48:32 url = '/rests/data/transportpce-portmapping:network/nodes=ROADMA01', body = None 07:48:32 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 07:48:32 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 redirect = False, assert_same_host = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 07:48:32 release_conn = False, chunked = False, body_pos = None, preload_content = False 07:48:32 decode_content = False, response_kw = {} 07:48:32 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/transportpce-portmapping:network/nodes=ROADMA01', query=None, fragment=None) 07:48:32 destination_scheme = None, conn = None, release_this_conn = True 07:48:32 http_tunnel_required = False, err = None, clean_exit = False 07:48:32 07:48:32 def urlopen( # type: ignore[override] 07:48:32 self, 07:48:32 method: str, 07:48:32 url: str, 07:48:32 body: _TYPE_BODY | None = None, 07:48:32 headers: typing.Mapping[str, str] | None = None, 07:48:32 retries: Retry | bool | int | None = None, 07:48:32 redirect: bool = True, 07:48:32 assert_same_host: bool = True, 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 pool_timeout: int | None = None, 07:48:32 release_conn: bool | None = None, 07:48:32 chunked: bool = False, 07:48:32 body_pos: _TYPE_BODY_POSITION | None = None, 07:48:32 preload_content: bool = True, 07:48:32 decode_content: bool = True, 07:48:32 **response_kw: typing.Any, 07:48:32 ) -> BaseHTTPResponse: 07:48:32 """ 07:48:32 Get a connection from the pool and perform an HTTP request. This is the 07:48:32 lowest level call for making a request, so you'll need to specify all 07:48:32 the raw details. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 More commonly, it's appropriate to use a convenience method 07:48:32 such as :meth:`request`. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 `release_conn` will only behave as expected if 07:48:32 `preload_content=False` because we want to make 07:48:32 `preload_content=False` the default behaviour someday soon without 07:48:32 breaking backwards compatibility. 07:48:32 07:48:32 :param method: 07:48:32 HTTP request method (such as GET, POST, PUT, etc.) 07:48:32 07:48:32 :param url: 07:48:32 The URL to perform the request on. 07:48:32 07:48:32 :param body: 07:48:32 Data to send in the request body, either :class:`str`, :class:`bytes`, 07:48:32 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 07:48:32 07:48:32 :param headers: 07:48:32 Dictionary of custom headers to send, such as User-Agent, 07:48:32 If-None-Match, etc. If None, pool headers are used. If provided, 07:48:32 these headers completely replace any pool-specific headers. 07:48:32 07:48:32 :param retries: 07:48:32 Configure the number of retries to allow before raising a 07:48:32 :class:`~urllib3.exceptions.MaxRetryError` exception. 07:48:32 07:48:32 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 07:48:32 :class:`~urllib3.util.retry.Retry` object for fine-grained control 07:48:32 over different types of retries. 07:48:32 Pass an integer number to retry connection errors that many times, 07:48:32 but no other types of errors. Pass zero to never retry. 07:48:32 07:48:32 If ``False``, then retries are disabled and any exception is raised 07:48:32 immediately. Also, instead of raising a MaxRetryError on redirects, 07:48:32 the redirect response will be returned. 07:48:32 07:48:32 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 07:48:32 07:48:32 :param redirect: 07:48:32 If True, automatically handle redirects (status codes 301, 302, 07:48:32 303, 307, 308). Each redirect counts as a retry. Disabling retries 07:48:32 will disable redirect, too. 07:48:32 07:48:32 :param assert_same_host: 07:48:32 If ``True``, will make sure that the host of the pool requests is 07:48:32 consistent else will raise HostChangedError. When ``False``, you can 07:48:32 use the pool on an HTTP proxy and request foreign hosts. 07:48:32 07:48:32 :param timeout: 07:48:32 If specified, overrides the default timeout for this one 07:48:32 request. It may be a float (in seconds) or an instance of 07:48:32 :class:`urllib3.util.Timeout`. 07:48:32 07:48:32 :param pool_timeout: 07:48:32 If set and the pool is set to block=True, then this method will 07:48:32 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 07:48:32 connection is available within the time period. 07:48:32 07:48:32 :param bool preload_content: 07:48:32 If True, the response's body will be preloaded into memory. 07:48:32 07:48:32 :param bool decode_content: 07:48:32 If True, will attempt to decode the body based on the 07:48:32 'content-encoding' header. 07:48:32 07:48:32 :param release_conn: 07:48:32 If False, then the urlopen call will not release the connection 07:48:32 back into the pool once a response is received (but will release if 07:48:32 you read the entire contents of the response such as when 07:48:32 `preload_content=True`). This is useful if you're not preloading 07:48:32 the response's content immediately. You will need to call 07:48:32 ``r.release_conn()`` on the response ``r`` to return the connection 07:48:32 back into the pool. If None, it takes the value of ``preload_content`` 07:48:32 which defaults to ``True``. 07:48:32 07:48:32 :param bool chunked: 07:48:32 If True, urllib3 will send the body using chunked transfer 07:48:32 encoding. Otherwise, urllib3 will send the body using the standard 07:48:32 content-length form. Defaults to False. 07:48:32 07:48:32 :param int body_pos: 07:48:32 Position to seek to in file-like body in the event of a retry or 07:48:32 redirect. Typically this won't need to be set because urllib3 will 07:48:32 auto-populate the value when needed. 07:48:32 """ 07:48:32 parsed_url = parse_url(url) 07:48:32 destination_scheme = parsed_url.scheme 07:48:32 07:48:32 if headers is None: 07:48:32 headers = self.headers 07:48:32 07:48:32 if not isinstance(retries, Retry): 07:48:32 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 07:48:32 07:48:32 if release_conn is None: 07:48:32 release_conn = preload_content 07:48:32 07:48:32 # Check host 07:48:32 if assert_same_host and not self.is_same_host(url): 07:48:32 raise HostChangedError(self, url, retries) 07:48:32 07:48:32 # Ensure that the URL we're connecting to is properly encoded 07:48:32 if url.startswith("/"): 07:48:32 url = to_str(_encode_target(url)) 07:48:32 else: 07:48:32 url = to_str(parsed_url.url) 07:48:32 07:48:32 conn = None 07:48:32 07:48:32 # Track whether `conn` needs to be released before 07:48:32 # returning/raising/recursing. Update this variable if necessary, and 07:48:32 # leave `release_conn` constant throughout the function. That way, if 07:48:32 # the function recurses, the original value of `release_conn` will be 07:48:32 # passed down into the recursive call, and its value will be respected. 07:48:32 # 07:48:32 # See issue #651 [1] for details. 07:48:32 # 07:48:32 # [1] 07:48:32 release_this_conn = release_conn 07:48:32 07:48:32 http_tunnel_required = connection_requires_http_tunnel( 07:48:32 self.proxy, self.proxy_config, destination_scheme 07:48:32 ) 07:48:32 07:48:32 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 07:48:32 # have to copy the headers dict so we can safely change it without those 07:48:32 # changes being reflected in anyone else's copy. 07:48:32 if not http_tunnel_required: 07:48:32 headers = headers.copy() # type: ignore[attr-defined] 07:48:32 headers.update(self.proxy_headers) # type: ignore[union-attr] 07:48:32 07:48:32 # Must keep the exception bound to a separate variable or else Python 3 07:48:32 # complains about UnboundLocalError. 07:48:32 err = None 07:48:32 07:48:32 # Keep track of whether we cleanly exited the except block. This 07:48:32 # ensures we do proper cleanup in finally. 07:48:32 clean_exit = False 07:48:32 07:48:32 # Rewind body position, if needed. Record current position 07:48:32 # for future rewinds in the event of a redirect/retry. 07:48:32 body_pos = set_file_position(body, body_pos) 07:48:32 07:48:32 try: 07:48:32 # Request a connection from the queue. 07:48:32 timeout_obj = self._get_timeout(timeout) 07:48:32 conn = self._get_conn(timeout=pool_timeout) 07:48:32 07:48:32 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 07:48:32 07:48:32 # Is this a closed/new connection that requires CONNECT tunnelling? 07:48:32 if self.proxy is not None and http_tunnel_required and conn.is_closed: 07:48:32 try: 07:48:32 self._prepare_proxy(conn) 07:48:32 except (BaseSSLError, OSError, SocketTimeout) as e: 07:48:32 self._raise_timeout( 07:48:32 err=e, url=self.proxy.url, timeout_value=conn.timeout 07:48:32 ) 07:48:32 raise 07:48:32 07:48:32 # If we're going to release the connection in ``finally:``, then 07:48:32 # the response doesn't need to know about the connection. Otherwise 07:48:32 # it will also try to release it and we'll have a double-release 07:48:32 # mess. 07:48:32 response_conn = conn if not release_conn else None 07:48:32 07:48:32 # Make the request on the HTTPConnection object 07:48:32 > response = self._make_request( 07:48:32 conn, 07:48:32 method, 07:48:32 url, 07:48:32 timeout=timeout_obj, 07:48:32 body=body, 07:48:32 headers=headers, 07:48:32 chunked=chunked, 07:48:32 retries=retries, 07:48:32 response_conn=response_conn, 07:48:32 preload_content=preload_content, 07:48:32 decode_content=decode_content, 07:48:32 **response_kw, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:536: in _make_request 07:48:32 response = conn.getresponse() 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:507: in getresponse 07:48:32 httplib_response = super().getresponse() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1386: in getresponse 07:48:32 response.begin() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:325: in begin 07:48:32 version, status, reason = self._read_status() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:286: in _read_status 07:48:32 line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 b = 07:48:32 07:48:32 def readinto(self, b): 07:48:32 """Read up to len(b) bytes into the writable buffer *b* and return 07:48:32 the number of bytes read. If the socket is non-blocking and no bytes 07:48:32 are available, None is returned. 07:48:32 07:48:32 If *b* is non-empty, a 0 return value indicates that the connection 07:48:32 was shutdown at the other end. 07:48:32 """ 07:48:32 self._checkClosed() 07:48:32 self._checkReadable() 07:48:32 if self._timeout_occurred: 07:48:32 raise OSError("cannot read from timed out object") 07:48:32 while True: 07:48:32 try: 07:48:32 > return self._sock.recv_into(b) 07:48:32 E ConnectionResetError: [Errno 104] Connection reset by peer 07:48:32 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/socket.py:706: ConnectionResetError 07:48:32 07:48:32 During handling of the above exception, another exception occurred: 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 > resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 07:48:32 retries = retries.increment( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:474: in increment 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/util.py:38: in reraise 07:48:32 raise value.with_traceback(tb) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: in urlopen 07:48:32 response = self._make_request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:536: in _make_request 07:48:32 response = conn.getresponse() 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:507: in getresponse 07:48:32 httplib_response = super().getresponse() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1386: in getresponse 07:48:32 response.begin() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:325: in begin 07:48:32 version, status, reason = self._read_status() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:286: in _read_status 07:48:32 line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 b = 07:48:32 07:48:32 def readinto(self, b): 07:48:32 """Read up to len(b) bytes into the writable buffer *b* and return 07:48:32 the number of bytes read. If the socket is non-blocking and no bytes 07:48:32 are available, None is returned. 07:48:32 07:48:32 If *b* is non-empty, a 0 return value indicates that the connection 07:48:32 was shutdown at the other end. 07:48:32 """ 07:48:32 self._checkClosed() 07:48:32 self._checkReadable() 07:48:32 if self._timeout_occurred: 07:48:32 raise OSError("cannot read from timed out object") 07:48:32 while True: 07:48:32 try: 07:48:32 > return self._sock.recv_into(b) 07:48:32 E urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 07:48:32 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/socket.py:706: ProtocolError 07:48:32 07:48:32 During handling of the above exception, another exception occurred: 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_03_rdm_portmapping(self): 07:48:32 > response = test_utils.get_portmapping_node_attr("ROADMA01", None, None) 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:57: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 transportpce_tests/common/test_utils.py:470: in get_portmapping_node_attr 07:48:32 response = get_request(target_url) 07:48:32 transportpce_tests/common/test_utils.py:116: in get_request 07:48:32 return requests.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 07:48:32 return session.request(method=method, url=url, **kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 07:48:32 resp = self.send(prep, **send_kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 07:48:32 r = adapter.send(request, **kwargs) 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 except (ProtocolError, OSError) as err: 07:48:32 > raise ConnectionError(err, request=request) 07:48:32 E requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:682: ConnectionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_03_rdm_portmapping 07:48:32 _____________ TransportPCERendererTesting.test_04_xpdr_portmapping _____________ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 > sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 07:48:32 raise err 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 address = ('localhost', 8182), timeout = 10, source_address = None 07:48:32 socket_options = [(6, 1, 1)] 07:48:32 07:48:32 def create_connection( 07:48:32 address: tuple[str, int], 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 source_address: tuple[str, int] | None = None, 07:48:32 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 07:48:32 ) -> socket.socket: 07:48:32 """Connect to *address* and return the socket object. 07:48:32 07:48:32 Convenience function. Connect to *address* (a 2-tuple ``(host, 07:48:32 port)``) and return the socket object. Passing the optional 07:48:32 *timeout* parameter will set the timeout on the socket instance 07:48:32 before attempting to connect. If no *timeout* is supplied, the 07:48:32 global default timeout setting returned by :func:`socket.getdefaulttimeout` 07:48:32 is used. If *source_address* is set it must be a tuple of (host, port) 07:48:32 for the socket to bind as a source address before making the connection. 07:48:32 An host of '' or port 0 tells the OS to use the default. 07:48:32 """ 07:48:32 07:48:32 host, port = address 07:48:32 if host.startswith("["): 07:48:32 host = host.strip("[]") 07:48:32 err = None 07:48:32 07:48:32 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 07:48:32 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 07:48:32 # The original create_connection function always returns all records. 07:48:32 family = allowed_gai_family() 07:48:32 07:48:32 try: 07:48:32 host.encode("idna") 07:48:32 except UnicodeError: 07:48:32 raise LocationParseError(f"'{host}', label empty or too long") from None 07:48:32 07:48:32 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 07:48:32 af, socktype, proto, canonname, sa = res 07:48:32 sock = None 07:48:32 try: 07:48:32 sock = socket.socket(af, socktype, proto) 07:48:32 07:48:32 # If provided, set socket level options before connecting. 07:48:32 _set_socket_options(sock, socket_options) 07:48:32 07:48:32 if timeout is not _DEFAULT_TIMEOUT: 07:48:32 sock.settimeout(timeout) 07:48:32 if source_address: 07:48:32 sock.bind(source_address) 07:48:32 > sock.connect(sa) 07:48:32 E ConnectionRefusedError: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 method = 'GET' 07:48:32 url = '/rests/data/transportpce-portmapping:network/nodes=XPDRA01', body = None 07:48:32 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 07:48:32 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 redirect = False, assert_same_host = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 07:48:32 release_conn = False, chunked = False, body_pos = None, preload_content = False 07:48:32 decode_content = False, response_kw = {} 07:48:32 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/transportpce-portmapping:network/nodes=XPDRA01', query=None, fragment=None) 07:48:32 destination_scheme = None, conn = None, release_this_conn = True 07:48:32 http_tunnel_required = False, err = None, clean_exit = False 07:48:32 07:48:32 def urlopen( # type: ignore[override] 07:48:32 self, 07:48:32 method: str, 07:48:32 url: str, 07:48:32 body: _TYPE_BODY | None = None, 07:48:32 headers: typing.Mapping[str, str] | None = None, 07:48:32 retries: Retry | bool | int | None = None, 07:48:32 redirect: bool = True, 07:48:32 assert_same_host: bool = True, 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 pool_timeout: int | None = None, 07:48:32 release_conn: bool | None = None, 07:48:32 chunked: bool = False, 07:48:32 body_pos: _TYPE_BODY_POSITION | None = None, 07:48:32 preload_content: bool = True, 07:48:32 decode_content: bool = True, 07:48:32 **response_kw: typing.Any, 07:48:32 ) -> BaseHTTPResponse: 07:48:32 """ 07:48:32 Get a connection from the pool and perform an HTTP request. This is the 07:48:32 lowest level call for making a request, so you'll need to specify all 07:48:32 the raw details. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 More commonly, it's appropriate to use a convenience method 07:48:32 such as :meth:`request`. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 `release_conn` will only behave as expected if 07:48:32 `preload_content=False` because we want to make 07:48:32 `preload_content=False` the default behaviour someday soon without 07:48:32 breaking backwards compatibility. 07:48:32 07:48:32 :param method: 07:48:32 HTTP request method (such as GET, POST, PUT, etc.) 07:48:32 07:48:32 :param url: 07:48:32 The URL to perform the request on. 07:48:32 07:48:32 :param body: 07:48:32 Data to send in the request body, either :class:`str`, :class:`bytes`, 07:48:32 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 07:48:32 07:48:32 :param headers: 07:48:32 Dictionary of custom headers to send, such as User-Agent, 07:48:32 If-None-Match, etc. If None, pool headers are used. If provided, 07:48:32 these headers completely replace any pool-specific headers. 07:48:32 07:48:32 :param retries: 07:48:32 Configure the number of retries to allow before raising a 07:48:32 :class:`~urllib3.exceptions.MaxRetryError` exception. 07:48:32 07:48:32 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 07:48:32 :class:`~urllib3.util.retry.Retry` object for fine-grained control 07:48:32 over different types of retries. 07:48:32 Pass an integer number to retry connection errors that many times, 07:48:32 but no other types of errors. Pass zero to never retry. 07:48:32 07:48:32 If ``False``, then retries are disabled and any exception is raised 07:48:32 immediately. Also, instead of raising a MaxRetryError on redirects, 07:48:32 the redirect response will be returned. 07:48:32 07:48:32 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 07:48:32 07:48:32 :param redirect: 07:48:32 If True, automatically handle redirects (status codes 301, 302, 07:48:32 303, 307, 308). Each redirect counts as a retry. Disabling retries 07:48:32 will disable redirect, too. 07:48:32 07:48:32 :param assert_same_host: 07:48:32 If ``True``, will make sure that the host of the pool requests is 07:48:32 consistent else will raise HostChangedError. When ``False``, you can 07:48:32 use the pool on an HTTP proxy and request foreign hosts. 07:48:32 07:48:32 :param timeout: 07:48:32 If specified, overrides the default timeout for this one 07:48:32 request. It may be a float (in seconds) or an instance of 07:48:32 :class:`urllib3.util.Timeout`. 07:48:32 07:48:32 :param pool_timeout: 07:48:32 If set and the pool is set to block=True, then this method will 07:48:32 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 07:48:32 connection is available within the time period. 07:48:32 07:48:32 :param bool preload_content: 07:48:32 If True, the response's body will be preloaded into memory. 07:48:32 07:48:32 :param bool decode_content: 07:48:32 If True, will attempt to decode the body based on the 07:48:32 'content-encoding' header. 07:48:32 07:48:32 :param release_conn: 07:48:32 If False, then the urlopen call will not release the connection 07:48:32 back into the pool once a response is received (but will release if 07:48:32 you read the entire contents of the response such as when 07:48:32 `preload_content=True`). This is useful if you're not preloading 07:48:32 the response's content immediately. You will need to call 07:48:32 ``r.release_conn()`` on the response ``r`` to return the connection 07:48:32 back into the pool. If None, it takes the value of ``preload_content`` 07:48:32 which defaults to ``True``. 07:48:32 07:48:32 :param bool chunked: 07:48:32 If True, urllib3 will send the body using chunked transfer 07:48:32 encoding. Otherwise, urllib3 will send the body using the standard 07:48:32 content-length form. Defaults to False. 07:48:32 07:48:32 :param int body_pos: 07:48:32 Position to seek to in file-like body in the event of a retry or 07:48:32 redirect. Typically this won't need to be set because urllib3 will 07:48:32 auto-populate the value when needed. 07:48:32 """ 07:48:32 parsed_url = parse_url(url) 07:48:32 destination_scheme = parsed_url.scheme 07:48:32 07:48:32 if headers is None: 07:48:32 headers = self.headers 07:48:32 07:48:32 if not isinstance(retries, Retry): 07:48:32 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 07:48:32 07:48:32 if release_conn is None: 07:48:32 release_conn = preload_content 07:48:32 07:48:32 # Check host 07:48:32 if assert_same_host and not self.is_same_host(url): 07:48:32 raise HostChangedError(self, url, retries) 07:48:32 07:48:32 # Ensure that the URL we're connecting to is properly encoded 07:48:32 if url.startswith("/"): 07:48:32 url = to_str(_encode_target(url)) 07:48:32 else: 07:48:32 url = to_str(parsed_url.url) 07:48:32 07:48:32 conn = None 07:48:32 07:48:32 # Track whether `conn` needs to be released before 07:48:32 # returning/raising/recursing. Update this variable if necessary, and 07:48:32 # leave `release_conn` constant throughout the function. That way, if 07:48:32 # the function recurses, the original value of `release_conn` will be 07:48:32 # passed down into the recursive call, and its value will be respected. 07:48:32 # 07:48:32 # See issue #651 [1] for details. 07:48:32 # 07:48:32 # [1] 07:48:32 release_this_conn = release_conn 07:48:32 07:48:32 http_tunnel_required = connection_requires_http_tunnel( 07:48:32 self.proxy, self.proxy_config, destination_scheme 07:48:32 ) 07:48:32 07:48:32 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 07:48:32 # have to copy the headers dict so we can safely change it without those 07:48:32 # changes being reflected in anyone else's copy. 07:48:32 if not http_tunnel_required: 07:48:32 headers = headers.copy() # type: ignore[attr-defined] 07:48:32 headers.update(self.proxy_headers) # type: ignore[union-attr] 07:48:32 07:48:32 # Must keep the exception bound to a separate variable or else Python 3 07:48:32 # complains about UnboundLocalError. 07:48:32 err = None 07:48:32 07:48:32 # Keep track of whether we cleanly exited the except block. This 07:48:32 # ensures we do proper cleanup in finally. 07:48:32 clean_exit = False 07:48:32 07:48:32 # Rewind body position, if needed. Record current position 07:48:32 # for future rewinds in the event of a redirect/retry. 07:48:32 body_pos = set_file_position(body, body_pos) 07:48:32 07:48:32 try: 07:48:32 # Request a connection from the queue. 07:48:32 timeout_obj = self._get_timeout(timeout) 07:48:32 conn = self._get_conn(timeout=pool_timeout) 07:48:32 07:48:32 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 07:48:32 07:48:32 # Is this a closed/new connection that requires CONNECT tunnelling? 07:48:32 if self.proxy is not None and http_tunnel_required and conn.is_closed: 07:48:32 try: 07:48:32 self._prepare_proxy(conn) 07:48:32 except (BaseSSLError, OSError, SocketTimeout) as e: 07:48:32 self._raise_timeout( 07:48:32 err=e, url=self.proxy.url, timeout_value=conn.timeout 07:48:32 ) 07:48:32 raise 07:48:32 07:48:32 # If we're going to release the connection in ``finally:``, then 07:48:32 # the response doesn't need to know about the connection. Otherwise 07:48:32 # it will also try to release it and we'll have a double-release 07:48:32 # mess. 07:48:32 response_conn = conn if not release_conn else None 07:48:32 07:48:32 # Make the request on the HTTPConnection object 07:48:32 > response = self._make_request( 07:48:32 conn, 07:48:32 method, 07:48:32 url, 07:48:32 timeout=timeout_obj, 07:48:32 body=body, 07:48:32 headers=headers, 07:48:32 chunked=chunked, 07:48:32 retries=retries, 07:48:32 response_conn=response_conn, 07:48:32 preload_content=preload_content, 07:48:32 decode_content=decode_content, 07:48:32 **response_kw, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 07:48:32 conn.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 07:48:32 self.endheaders() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 07:48:32 self._send_output(message_body, encode_chunked=encode_chunked) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 07:48:32 self.send(msg) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 07:48:32 self.connect() 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 07:48:32 self.sock = self._new_conn() 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 except socket.gaierror as e: 07:48:32 raise NameResolutionError(self.host, self, e) from e 07:48:32 except SocketTimeout as e: 07:48:32 raise ConnectTimeoutError( 07:48:32 self, 07:48:32 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 07:48:32 ) from e 07:48:32 07:48:32 except OSError as e: 07:48:32 > raise NewConnectionError( 07:48:32 self, f"Failed to establish a new connection: {e}" 07:48:32 ) from e 07:48:32 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 > resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 07:48:32 retries = retries.increment( 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 method = 'GET' 07:48:32 url = '/rests/data/transportpce-portmapping:network/nodes=XPDRA01' 07:48:32 response = None 07:48:32 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 07:48:32 _pool = 07:48:32 _stacktrace = 07:48:32 07:48:32 def increment( 07:48:32 self, 07:48:32 method: str | None = None, 07:48:32 url: str | None = None, 07:48:32 response: BaseHTTPResponse | None = None, 07:48:32 error: Exception | None = None, 07:48:32 _pool: ConnectionPool | None = None, 07:48:32 _stacktrace: TracebackType | None = None, 07:48:32 ) -> Self: 07:48:32 """Return a new Retry object with incremented retry counters. 07:48:32 07:48:32 :param response: A response object, or None, if the server did not 07:48:32 return a response. 07:48:32 :type response: :class:`~urllib3.response.BaseHTTPResponse` 07:48:32 :param Exception error: An error encountered during the request, or 07:48:32 None if the response was received successfully. 07:48:32 07:48:32 :return: A new ``Retry`` object. 07:48:32 """ 07:48:32 if self.total is False and error: 07:48:32 # Disabled, indicate to re-raise the error. 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 07:48:32 total = self.total 07:48:32 if total is not None: 07:48:32 total -= 1 07:48:32 07:48:32 connect = self.connect 07:48:32 read = self.read 07:48:32 redirect = self.redirect 07:48:32 status_count = self.status 07:48:32 other = self.other 07:48:32 cause = "unknown" 07:48:32 status = None 07:48:32 redirect_location = None 07:48:32 07:48:32 if error and self._is_connection_error(error): 07:48:32 # Connect retry? 07:48:32 if connect is False: 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif connect is not None: 07:48:32 connect -= 1 07:48:32 07:48:32 elif error and self._is_read_error(error): 07:48:32 # Read retry? 07:48:32 if read is False or method is None or not self._is_method_retryable(method): 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif read is not None: 07:48:32 read -= 1 07:48:32 07:48:32 elif error: 07:48:32 # Other retry? 07:48:32 if other is not None: 07:48:32 other -= 1 07:48:32 07:48:32 elif response and response.get_redirect_location(): 07:48:32 # Redirect retry? 07:48:32 if redirect is not None: 07:48:32 redirect -= 1 07:48:32 cause = "too many redirects" 07:48:32 response_redirect_location = response.get_redirect_location() 07:48:32 if response_redirect_location: 07:48:32 redirect_location = response_redirect_location 07:48:32 status = response.status 07:48:32 07:48:32 else: 07:48:32 # Incrementing because of a server error like a 500 in 07:48:32 # status_forcelist and the given method is in the allowed_methods 07:48:32 cause = ResponseError.GENERIC_ERROR 07:48:32 if response and response.status: 07:48:32 if status_count is not None: 07:48:32 status_count -= 1 07:48:32 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 07:48:32 status = response.status 07:48:32 07:48:32 history = self.history + ( 07:48:32 RequestHistory(method, url, error, status, redirect_location), 07:48:32 ) 07:48:32 07:48:32 new_retry = self.new( 07:48:32 total=total, 07:48:32 connect=connect, 07:48:32 read=read, 07:48:32 redirect=redirect, 07:48:32 status=status_count, 07:48:32 other=other, 07:48:32 history=history, 07:48:32 ) 07:48:32 07:48:32 if new_retry.is_exhausted(): 07:48:32 reason = error or ResponseError(cause) 07:48:32 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 07:48:32 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/transportpce-portmapping:network/nodes=XPDRA01 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 07:48:32 07:48:32 During handling of the above exception, another exception occurred: 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_04_xpdr_portmapping(self): 07:48:32 > response = test_utils.get_portmapping_node_attr("XPDRA01", None, None) 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:71: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 transportpce_tests/common/test_utils.py:470: in get_portmapping_node_attr 07:48:32 response = get_request(target_url) 07:48:32 transportpce_tests/common/test_utils.py:116: in get_request 07:48:32 return requests.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 07:48:32 return session.request(method=method, url=url, **kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 07:48:32 resp = self.send(prep, **send_kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 07:48:32 r = adapter.send(request, **kwargs) 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 except (ProtocolError, OSError) as err: 07:48:32 raise ConnectionError(err, request=request) 07:48:32 07:48:32 except MaxRetryError as e: 07:48:32 if isinstance(e.reason, ConnectTimeoutError): 07:48:32 # TODO: Remove this in 3.0.0: see #2811 07:48:32 if not isinstance(e.reason, NewConnectionError): 07:48:32 raise ConnectTimeout(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, ResponseError): 07:48:32 raise RetryError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _ProxyError): 07:48:32 raise ProxyError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _SSLError): 07:48:32 # This branch is for urllib3 v1.22 and later. 07:48:32 raise SSLError(e, request=request) 07:48:32 07:48:32 > raise ConnectionError(e, request=request) 07:48:32 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/transportpce-portmapping:network/nodes=XPDRA01 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_04_xpdr_portmapping 07:48:32 ___________ TransportPCERendererTesting.test_05_service_path_create ____________ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 > sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 07:48:32 raise err 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 address = ('localhost', 8182), timeout = 10, source_address = None 07:48:32 socket_options = [(6, 1, 1)] 07:48:32 07:48:32 def create_connection( 07:48:32 address: tuple[str, int], 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 source_address: tuple[str, int] | None = None, 07:48:32 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 07:48:32 ) -> socket.socket: 07:48:32 """Connect to *address* and return the socket object. 07:48:32 07:48:32 Convenience function. Connect to *address* (a 2-tuple ``(host, 07:48:32 port)``) and return the socket object. Passing the optional 07:48:32 *timeout* parameter will set the timeout on the socket instance 07:48:32 before attempting to connect. If no *timeout* is supplied, the 07:48:32 global default timeout setting returned by :func:`socket.getdefaulttimeout` 07:48:32 is used. If *source_address* is set it must be a tuple of (host, port) 07:48:32 for the socket to bind as a source address before making the connection. 07:48:32 An host of '' or port 0 tells the OS to use the default. 07:48:32 """ 07:48:32 07:48:32 host, port = address 07:48:32 if host.startswith("["): 07:48:32 host = host.strip("[]") 07:48:32 err = None 07:48:32 07:48:32 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 07:48:32 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 07:48:32 # The original create_connection function always returns all records. 07:48:32 family = allowed_gai_family() 07:48:32 07:48:32 try: 07:48:32 host.encode("idna") 07:48:32 except UnicodeError: 07:48:32 raise LocationParseError(f"'{host}', label empty or too long") from None 07:48:32 07:48:32 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 07:48:32 af, socktype, proto, canonname, sa = res 07:48:32 sock = None 07:48:32 try: 07:48:32 sock = socket.socket(af, socktype, proto) 07:48:32 07:48:32 # If provided, set socket level options before connecting. 07:48:32 _set_socket_options(sock, socket_options) 07:48:32 07:48:32 if timeout is not _DEFAULT_TIMEOUT: 07:48:32 sock.settimeout(timeout) 07:48:32 if source_address: 07:48:32 sock.bind(source_address) 07:48:32 > sock.connect(sa) 07:48:32 E ConnectionRefusedError: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 method = 'POST' 07:48:32 url = '/rests/operations/transportpce-device-renderer:service-path' 07:48:32 body = '{"input": {"service-name": "service_test", "wave-number": "7", "modulation-format": "dp-qpsk", "operation": "create",... 40, "min-freq": 195.775, "max-freq": 195.825, "lower-spectral-slot-number": 713, "higher-spectral-slot-number": 720}}' 07:48:32 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '441', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 07:48:32 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 redirect = False, assert_same_host = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 07:48:32 release_conn = False, chunked = False, body_pos = None, preload_content = False 07:48:32 decode_content = False, response_kw = {} 07:48:32 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/operations/transportpce-device-renderer:service-path', query=None, fragment=None) 07:48:32 destination_scheme = None, conn = None, release_this_conn = True 07:48:32 http_tunnel_required = False, err = None, clean_exit = False 07:48:32 07:48:32 def urlopen( # type: ignore[override] 07:48:32 self, 07:48:32 method: str, 07:48:32 url: str, 07:48:32 body: _TYPE_BODY | None = None, 07:48:32 headers: typing.Mapping[str, str] | None = None, 07:48:32 retries: Retry | bool | int | None = None, 07:48:32 redirect: bool = True, 07:48:32 assert_same_host: bool = True, 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 pool_timeout: int | None = None, 07:48:32 release_conn: bool | None = None, 07:48:32 chunked: bool = False, 07:48:32 body_pos: _TYPE_BODY_POSITION | None = None, 07:48:32 preload_content: bool = True, 07:48:32 decode_content: bool = True, 07:48:32 **response_kw: typing.Any, 07:48:32 ) -> BaseHTTPResponse: 07:48:32 """ 07:48:32 Get a connection from the pool and perform an HTTP request. This is the 07:48:32 lowest level call for making a request, so you'll need to specify all 07:48:32 the raw details. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 More commonly, it's appropriate to use a convenience method 07:48:32 such as :meth:`request`. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 `release_conn` will only behave as expected if 07:48:32 `preload_content=False` because we want to make 07:48:32 `preload_content=False` the default behaviour someday soon without 07:48:32 breaking backwards compatibility. 07:48:32 07:48:32 :param method: 07:48:32 HTTP request method (such as GET, POST, PUT, etc.) 07:48:32 07:48:32 :param url: 07:48:32 The URL to perform the request on. 07:48:32 07:48:32 :param body: 07:48:32 Data to send in the request body, either :class:`str`, :class:`bytes`, 07:48:32 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 07:48:32 07:48:32 :param headers: 07:48:32 Dictionary of custom headers to send, such as User-Agent, 07:48:32 If-None-Match, etc. If None, pool headers are used. If provided, 07:48:32 these headers completely replace any pool-specific headers. 07:48:32 07:48:32 :param retries: 07:48:32 Configure the number of retries to allow before raising a 07:48:32 :class:`~urllib3.exceptions.MaxRetryError` exception. 07:48:32 07:48:32 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 07:48:32 :class:`~urllib3.util.retry.Retry` object for fine-grained control 07:48:32 over different types of retries. 07:48:32 Pass an integer number to retry connection errors that many times, 07:48:32 but no other types of errors. Pass zero to never retry. 07:48:32 07:48:32 If ``False``, then retries are disabled and any exception is raised 07:48:32 immediately. Also, instead of raising a MaxRetryError on redirects, 07:48:32 the redirect response will be returned. 07:48:32 07:48:32 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 07:48:32 07:48:32 :param redirect: 07:48:32 If True, automatically handle redirects (status codes 301, 302, 07:48:32 303, 307, 308). Each redirect counts as a retry. Disabling retries 07:48:32 will disable redirect, too. 07:48:32 07:48:32 :param assert_same_host: 07:48:32 If ``True``, will make sure that the host of the pool requests is 07:48:32 consistent else will raise HostChangedError. When ``False``, you can 07:48:32 use the pool on an HTTP proxy and request foreign hosts. 07:48:32 07:48:32 :param timeout: 07:48:32 If specified, overrides the default timeout for this one 07:48:32 request. It may be a float (in seconds) or an instance of 07:48:32 :class:`urllib3.util.Timeout`. 07:48:32 07:48:32 :param pool_timeout: 07:48:32 If set and the pool is set to block=True, then this method will 07:48:32 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 07:48:32 connection is available within the time period. 07:48:32 07:48:32 :param bool preload_content: 07:48:32 If True, the response's body will be preloaded into memory. 07:48:32 07:48:32 :param bool decode_content: 07:48:32 If True, will attempt to decode the body based on the 07:48:32 'content-encoding' header. 07:48:32 07:48:32 :param release_conn: 07:48:32 If False, then the urlopen call will not release the connection 07:48:32 back into the pool once a response is received (but will release if 07:48:32 you read the entire contents of the response such as when 07:48:32 `preload_content=True`). This is useful if you're not preloading 07:48:32 the response's content immediately. You will need to call 07:48:32 ``r.release_conn()`` on the response ``r`` to return the connection 07:48:32 back into the pool. If None, it takes the value of ``preload_content`` 07:48:32 which defaults to ``True``. 07:48:32 07:48:32 :param bool chunked: 07:48:32 If True, urllib3 will send the body using chunked transfer 07:48:32 encoding. Otherwise, urllib3 will send the body using the standard 07:48:32 content-length form. Defaults to False. 07:48:32 07:48:32 :param int body_pos: 07:48:32 Position to seek to in file-like body in the event of a retry or 07:48:32 redirect. Typically this won't need to be set because urllib3 will 07:48:32 auto-populate the value when needed. 07:48:32 """ 07:48:32 parsed_url = parse_url(url) 07:48:32 destination_scheme = parsed_url.scheme 07:48:32 07:48:32 if headers is None: 07:48:32 headers = self.headers 07:48:32 07:48:32 if not isinstance(retries, Retry): 07:48:32 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 07:48:32 07:48:32 if release_conn is None: 07:48:32 release_conn = preload_content 07:48:32 07:48:32 # Check host 07:48:32 if assert_same_host and not self.is_same_host(url): 07:48:32 raise HostChangedError(self, url, retries) 07:48:32 07:48:32 # Ensure that the URL we're connecting to is properly encoded 07:48:32 if url.startswith("/"): 07:48:32 url = to_str(_encode_target(url)) 07:48:32 else: 07:48:32 url = to_str(parsed_url.url) 07:48:32 07:48:32 conn = None 07:48:32 07:48:32 # Track whether `conn` needs to be released before 07:48:32 # returning/raising/recursing. Update this variable if necessary, and 07:48:32 # leave `release_conn` constant throughout the function. That way, if 07:48:32 # the function recurses, the original value of `release_conn` will be 07:48:32 # passed down into the recursive call, and its value will be respected. 07:48:32 # 07:48:32 # See issue #651 [1] for details. 07:48:32 # 07:48:32 # [1] 07:48:32 release_this_conn = release_conn 07:48:32 07:48:32 http_tunnel_required = connection_requires_http_tunnel( 07:48:32 self.proxy, self.proxy_config, destination_scheme 07:48:32 ) 07:48:32 07:48:32 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 07:48:32 # have to copy the headers dict so we can safely change it without those 07:48:32 # changes being reflected in anyone else's copy. 07:48:32 if not http_tunnel_required: 07:48:32 headers = headers.copy() # type: ignore[attr-defined] 07:48:32 headers.update(self.proxy_headers) # type: ignore[union-attr] 07:48:32 07:48:32 # Must keep the exception bound to a separate variable or else Python 3 07:48:32 # complains about UnboundLocalError. 07:48:32 err = None 07:48:32 07:48:32 # Keep track of whether we cleanly exited the except block. This 07:48:32 # ensures we do proper cleanup in finally. 07:48:32 clean_exit = False 07:48:32 07:48:32 # Rewind body position, if needed. Record current position 07:48:32 # for future rewinds in the event of a redirect/retry. 07:48:32 body_pos = set_file_position(body, body_pos) 07:48:32 07:48:32 try: 07:48:32 # Request a connection from the queue. 07:48:32 timeout_obj = self._get_timeout(timeout) 07:48:32 conn = self._get_conn(timeout=pool_timeout) 07:48:32 07:48:32 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 07:48:32 07:48:32 # Is this a closed/new connection that requires CONNECT tunnelling? 07:48:32 if self.proxy is not None and http_tunnel_required and conn.is_closed: 07:48:32 try: 07:48:32 self._prepare_proxy(conn) 07:48:32 except (BaseSSLError, OSError, SocketTimeout) as e: 07:48:32 self._raise_timeout( 07:48:32 err=e, url=self.proxy.url, timeout_value=conn.timeout 07:48:32 ) 07:48:32 raise 07:48:32 07:48:32 # If we're going to release the connection in ``finally:``, then 07:48:32 # the response doesn't need to know about the connection. Otherwise 07:48:32 # it will also try to release it and we'll have a double-release 07:48:32 # mess. 07:48:32 response_conn = conn if not release_conn else None 07:48:32 07:48:32 # Make the request on the HTTPConnection object 07:48:32 > response = self._make_request( 07:48:32 conn, 07:48:32 method, 07:48:32 url, 07:48:32 timeout=timeout_obj, 07:48:32 body=body, 07:48:32 headers=headers, 07:48:32 chunked=chunked, 07:48:32 retries=retries, 07:48:32 response_conn=response_conn, 07:48:32 preload_content=preload_content, 07:48:32 decode_content=decode_content, 07:48:32 **response_kw, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 07:48:32 conn.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 07:48:32 self.endheaders() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 07:48:32 self._send_output(message_body, encode_chunked=encode_chunked) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 07:48:32 self.send(msg) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 07:48:32 self.connect() 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 07:48:32 self.sock = self._new_conn() 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 except socket.gaierror as e: 07:48:32 raise NameResolutionError(self.host, self, e) from e 07:48:32 except SocketTimeout as e: 07:48:32 raise ConnectTimeoutError( 07:48:32 self, 07:48:32 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 07:48:32 ) from e 07:48:32 07:48:32 except OSError as e: 07:48:32 > raise NewConnectionError( 07:48:32 self, f"Failed to establish a new connection: {e}" 07:48:32 ) from e 07:48:32 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 > resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 07:48:32 retries = retries.increment( 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 method = 'POST' 07:48:32 url = '/rests/operations/transportpce-device-renderer:service-path' 07:48:32 response = None 07:48:32 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 07:48:32 _pool = 07:48:32 _stacktrace = 07:48:32 07:48:32 def increment( 07:48:32 self, 07:48:32 method: str | None = None, 07:48:32 url: str | None = None, 07:48:32 response: BaseHTTPResponse | None = None, 07:48:32 error: Exception | None = None, 07:48:32 _pool: ConnectionPool | None = None, 07:48:32 _stacktrace: TracebackType | None = None, 07:48:32 ) -> Self: 07:48:32 """Return a new Retry object with incremented retry counters. 07:48:32 07:48:32 :param response: A response object, or None, if the server did not 07:48:32 return a response. 07:48:32 :type response: :class:`~urllib3.response.BaseHTTPResponse` 07:48:32 :param Exception error: An error encountered during the request, or 07:48:32 None if the response was received successfully. 07:48:32 07:48:32 :return: A new ``Retry`` object. 07:48:32 """ 07:48:32 if self.total is False and error: 07:48:32 # Disabled, indicate to re-raise the error. 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 07:48:32 total = self.total 07:48:32 if total is not None: 07:48:32 total -= 1 07:48:32 07:48:32 connect = self.connect 07:48:32 read = self.read 07:48:32 redirect = self.redirect 07:48:32 status_count = self.status 07:48:32 other = self.other 07:48:32 cause = "unknown" 07:48:32 status = None 07:48:32 redirect_location = None 07:48:32 07:48:32 if error and self._is_connection_error(error): 07:48:32 # Connect retry? 07:48:32 if connect is False: 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif connect is not None: 07:48:32 connect -= 1 07:48:32 07:48:32 elif error and self._is_read_error(error): 07:48:32 # Read retry? 07:48:32 if read is False or method is None or not self._is_method_retryable(method): 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif read is not None: 07:48:32 read -= 1 07:48:32 07:48:32 elif error: 07:48:32 # Other retry? 07:48:32 if other is not None: 07:48:32 other -= 1 07:48:32 07:48:32 elif response and response.get_redirect_location(): 07:48:32 # Redirect retry? 07:48:32 if redirect is not None: 07:48:32 redirect -= 1 07:48:32 cause = "too many redirects" 07:48:32 response_redirect_location = response.get_redirect_location() 07:48:32 if response_redirect_location: 07:48:32 redirect_location = response_redirect_location 07:48:32 status = response.status 07:48:32 07:48:32 else: 07:48:32 # Incrementing because of a server error like a 500 in 07:48:32 # status_forcelist and the given method is in the allowed_methods 07:48:32 cause = ResponseError.GENERIC_ERROR 07:48:32 if response and response.status: 07:48:32 if status_count is not None: 07:48:32 status_count -= 1 07:48:32 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 07:48:32 status = response.status 07:48:32 07:48:32 history = self.history + ( 07:48:32 RequestHistory(method, url, error, status, redirect_location), 07:48:32 ) 07:48:32 07:48:32 new_retry = self.new( 07:48:32 total=total, 07:48:32 connect=connect, 07:48:32 read=read, 07:48:32 redirect=redirect, 07:48:32 status=status_count, 07:48:32 other=other, 07:48:32 history=history, 07:48:32 ) 07:48:32 07:48:32 if new_retry.is_exhausted(): 07:48:32 reason = error or ResponseError(cause) 07:48:32 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 07:48:32 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/operations/transportpce-device-renderer:service-path (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 07:48:32 07:48:32 During handling of the above exception, another exception occurred: 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_05_service_path_create(self): 07:48:32 > response = test_utils.transportpce_api_rpc_request( 07:48:32 'transportpce-device-renderer', 'service-path', 07:48:32 { 07:48:32 'service-name': 'service_test', 07:48:32 'wave-number': '7', 07:48:32 'modulation-format': 'dp-qpsk', 07:48:32 'operation': 'create', 07:48:32 'nodes': [{'node-id': 'ROADMA01', 'src-tp': 'SRG1-PP7-TXRX', 'dest-tp': 'DEG1-TTP-TXRX'}, 07:48:32 {'node-id': 'XPDRA01', 'src-tp': 'XPDR1-CLIENT1', 'dest-tp': 'XPDR1-NETWORK1'}], 07:48:32 'center-freq': 195.8, 07:48:32 'nmc-width': 40, 07:48:32 'min-freq': 195.775, 07:48:32 'max-freq': 195.825, 07:48:32 'lower-spectral-slot-number': 713, 07:48:32 'higher-spectral-slot-number': 720 07:48:32 }) 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:90: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 transportpce_tests/common/test_utils.py:684: in transportpce_api_rpc_request 07:48:32 response = post_request(url, data) 07:48:32 transportpce_tests/common/test_utils.py:142: in post_request 07:48:32 return requests.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 07:48:32 return session.request(method=method, url=url, **kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 07:48:32 resp = self.send(prep, **send_kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 07:48:32 r = adapter.send(request, **kwargs) 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 except (ProtocolError, OSError) as err: 07:48:32 raise ConnectionError(err, request=request) 07:48:32 07:48:32 except MaxRetryError as e: 07:48:32 if isinstance(e.reason, ConnectTimeoutError): 07:48:32 # TODO: Remove this in 3.0.0: see #2811 07:48:32 if not isinstance(e.reason, NewConnectionError): 07:48:32 raise ConnectTimeout(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, ResponseError): 07:48:32 raise RetryError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _ProxyError): 07:48:32 raise ProxyError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _SSLError): 07:48:32 # This branch is for urllib3 v1.22 and later. 07:48:32 raise SSLError(e, request=request) 07:48:32 07:48:32 > raise ConnectionError(e, request=request) 07:48:32 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/operations/transportpce-device-renderer:service-path (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_05_service_path_create 07:48:32 ______ TransportPCERendererTesting.test_06_service_path_create_rdm_check _______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 > sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 07:48:32 raise err 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 address = ('localhost', 8182), timeout = 10, source_address = None 07:48:32 socket_options = [(6, 1, 1)] 07:48:32 07:48:32 def create_connection( 07:48:32 address: tuple[str, int], 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 source_address: tuple[str, int] | None = None, 07:48:32 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 07:48:32 ) -> socket.socket: 07:48:32 """Connect to *address* and return the socket object. 07:48:32 07:48:32 Convenience function. Connect to *address* (a 2-tuple ``(host, 07:48:32 port)``) and return the socket object. Passing the optional 07:48:32 *timeout* parameter will set the timeout on the socket instance 07:48:32 before attempting to connect. If no *timeout* is supplied, the 07:48:32 global default timeout setting returned by :func:`socket.getdefaulttimeout` 07:48:32 is used. If *source_address* is set it must be a tuple of (host, port) 07:48:32 for the socket to bind as a source address before making the connection. 07:48:32 An host of '' or port 0 tells the OS to use the default. 07:48:32 """ 07:48:32 07:48:32 host, port = address 07:48:32 if host.startswith("["): 07:48:32 host = host.strip("[]") 07:48:32 err = None 07:48:32 07:48:32 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 07:48:32 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 07:48:32 # The original create_connection function always returns all records. 07:48:32 family = allowed_gai_family() 07:48:32 07:48:32 try: 07:48:32 host.encode("idna") 07:48:32 except UnicodeError: 07:48:32 raise LocationParseError(f"'{host}', label empty or too long") from None 07:48:32 07:48:32 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 07:48:32 af, socktype, proto, canonname, sa = res 07:48:32 sock = None 07:48:32 try: 07:48:32 sock = socket.socket(af, socktype, proto) 07:48:32 07:48:32 # If provided, set socket level options before connecting. 07:48:32 _set_socket_options(sock, socket_options) 07:48:32 07:48:32 if timeout is not _DEFAULT_TIMEOUT: 07:48:32 sock.settimeout(timeout) 07:48:32 if source_address: 07:48:32 sock.bind(source_address) 07:48:32 > sock.connect(sa) 07:48:32 E ConnectionRefusedError: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 method = 'GET' 07:48:32 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=DEG1-TTP-TXRX-713:720?content=nonconfig' 07:48:32 body = None 07:48:32 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 07:48:32 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 redirect = False, assert_same_host = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 07:48:32 release_conn = False, chunked = False, body_pos = None, preload_content = False 07:48:32 decode_content = False, response_kw = {} 07:48:32 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/network-topology:network-topology/topology=topolog...t/org-openroadm-device:org-openroadm-device/interface=DEG1-TTP-TXRX-713:720', query='content=nonconfig', fragment=None) 07:48:32 destination_scheme = None, conn = None, release_this_conn = True 07:48:32 http_tunnel_required = False, err = None, clean_exit = False 07:48:32 07:48:32 def urlopen( # type: ignore[override] 07:48:32 self, 07:48:32 method: str, 07:48:32 url: str, 07:48:32 body: _TYPE_BODY | None = None, 07:48:32 headers: typing.Mapping[str, str] | None = None, 07:48:32 retries: Retry | bool | int | None = None, 07:48:32 redirect: bool = True, 07:48:32 assert_same_host: bool = True, 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 pool_timeout: int | None = None, 07:48:32 release_conn: bool | None = None, 07:48:32 chunked: bool = False, 07:48:32 body_pos: _TYPE_BODY_POSITION | None = None, 07:48:32 preload_content: bool = True, 07:48:32 decode_content: bool = True, 07:48:32 **response_kw: typing.Any, 07:48:32 ) -> BaseHTTPResponse: 07:48:32 """ 07:48:32 Get a connection from the pool and perform an HTTP request. This is the 07:48:32 lowest level call for making a request, so you'll need to specify all 07:48:32 the raw details. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 More commonly, it's appropriate to use a convenience method 07:48:32 such as :meth:`request`. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 `release_conn` will only behave as expected if 07:48:32 `preload_content=False` because we want to make 07:48:32 `preload_content=False` the default behaviour someday soon without 07:48:32 breaking backwards compatibility. 07:48:32 07:48:32 :param method: 07:48:32 HTTP request method (such as GET, POST, PUT, etc.) 07:48:32 07:48:32 :param url: 07:48:32 The URL to perform the request on. 07:48:32 07:48:32 :param body: 07:48:32 Data to send in the request body, either :class:`str`, :class:`bytes`, 07:48:32 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 07:48:32 07:48:32 :param headers: 07:48:32 Dictionary of custom headers to send, such as User-Agent, 07:48:32 If-None-Match, etc. If None, pool headers are used. If provided, 07:48:32 these headers completely replace any pool-specific headers. 07:48:32 07:48:32 :param retries: 07:48:32 Configure the number of retries to allow before raising a 07:48:32 :class:`~urllib3.exceptions.MaxRetryError` exception. 07:48:32 07:48:32 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 07:48:32 :class:`~urllib3.util.retry.Retry` object for fine-grained control 07:48:32 over different types of retries. 07:48:32 Pass an integer number to retry connection errors that many times, 07:48:32 but no other types of errors. Pass zero to never retry. 07:48:32 07:48:32 If ``False``, then retries are disabled and any exception is raised 07:48:32 immediately. Also, instead of raising a MaxRetryError on redirects, 07:48:32 the redirect response will be returned. 07:48:32 07:48:32 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 07:48:32 07:48:32 :param redirect: 07:48:32 If True, automatically handle redirects (status codes 301, 302, 07:48:32 303, 307, 308). Each redirect counts as a retry. Disabling retries 07:48:32 will disable redirect, too. 07:48:32 07:48:32 :param assert_same_host: 07:48:32 If ``True``, will make sure that the host of the pool requests is 07:48:32 consistent else will raise HostChangedError. When ``False``, you can 07:48:32 use the pool on an HTTP proxy and request foreign hosts. 07:48:32 07:48:32 :param timeout: 07:48:32 If specified, overrides the default timeout for this one 07:48:32 request. It may be a float (in seconds) or an instance of 07:48:32 :class:`urllib3.util.Timeout`. 07:48:32 07:48:32 :param pool_timeout: 07:48:32 If set and the pool is set to block=True, then this method will 07:48:32 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 07:48:32 connection is available within the time period. 07:48:32 07:48:32 :param bool preload_content: 07:48:32 If True, the response's body will be preloaded into memory. 07:48:32 07:48:32 :param bool decode_content: 07:48:32 If True, will attempt to decode the body based on the 07:48:32 'content-encoding' header. 07:48:32 07:48:32 :param release_conn: 07:48:32 If False, then the urlopen call will not release the connection 07:48:32 back into the pool once a response is received (but will release if 07:48:32 you read the entire contents of the response such as when 07:48:32 `preload_content=True`). This is useful if you're not preloading 07:48:32 the response's content immediately. You will need to call 07:48:32 ``r.release_conn()`` on the response ``r`` to return the connection 07:48:32 back into the pool. If None, it takes the value of ``preload_content`` 07:48:32 which defaults to ``True``. 07:48:32 07:48:32 :param bool chunked: 07:48:32 If True, urllib3 will send the body using chunked transfer 07:48:32 encoding. Otherwise, urllib3 will send the body using the standard 07:48:32 content-length form. Defaults to False. 07:48:32 07:48:32 :param int body_pos: 07:48:32 Position to seek to in file-like body in the event of a retry or 07:48:32 redirect. Typically this won't need to be set because urllib3 will 07:48:32 auto-populate the value when needed. 07:48:32 """ 07:48:32 parsed_url = parse_url(url) 07:48:32 destination_scheme = parsed_url.scheme 07:48:32 07:48:32 if headers is None: 07:48:32 headers = self.headers 07:48:32 07:48:32 if not isinstance(retries, Retry): 07:48:32 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 07:48:32 07:48:32 if release_conn is None: 07:48:32 release_conn = preload_content 07:48:32 07:48:32 # Check host 07:48:32 if assert_same_host and not self.is_same_host(url): 07:48:32 raise HostChangedError(self, url, retries) 07:48:32 07:48:32 # Ensure that the URL we're connecting to is properly encoded 07:48:32 if url.startswith("/"): 07:48:32 url = to_str(_encode_target(url)) 07:48:32 else: 07:48:32 url = to_str(parsed_url.url) 07:48:32 07:48:32 conn = None 07:48:32 07:48:32 # Track whether `conn` needs to be released before 07:48:32 # returning/raising/recursing. Update this variable if necessary, and 07:48:32 # leave `release_conn` constant throughout the function. That way, if 07:48:32 # the function recurses, the original value of `release_conn` will be 07:48:32 # passed down into the recursive call, and its value will be respected. 07:48:32 # 07:48:32 # See issue #651 [1] for details. 07:48:32 # 07:48:32 # [1] 07:48:32 release_this_conn = release_conn 07:48:32 07:48:32 http_tunnel_required = connection_requires_http_tunnel( 07:48:32 self.proxy, self.proxy_config, destination_scheme 07:48:32 ) 07:48:32 07:48:32 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 07:48:32 # have to copy the headers dict so we can safely change it without those 07:48:32 # changes being reflected in anyone else's copy. 07:48:32 if not http_tunnel_required: 07:48:32 headers = headers.copy() # type: ignore[attr-defined] 07:48:32 headers.update(self.proxy_headers) # type: ignore[union-attr] 07:48:32 07:48:32 # Must keep the exception bound to a separate variable or else Python 3 07:48:32 # complains about UnboundLocalError. 07:48:32 err = None 07:48:32 07:48:32 # Keep track of whether we cleanly exited the except block. This 07:48:32 # ensures we do proper cleanup in finally. 07:48:32 clean_exit = False 07:48:32 07:48:32 # Rewind body position, if needed. Record current position 07:48:32 # for future rewinds in the event of a redirect/retry. 07:48:32 body_pos = set_file_position(body, body_pos) 07:48:32 07:48:32 try: 07:48:32 # Request a connection from the queue. 07:48:32 timeout_obj = self._get_timeout(timeout) 07:48:32 conn = self._get_conn(timeout=pool_timeout) 07:48:32 07:48:32 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 07:48:32 07:48:32 # Is this a closed/new connection that requires CONNECT tunnelling? 07:48:32 if self.proxy is not None and http_tunnel_required and conn.is_closed: 07:48:32 try: 07:48:32 self._prepare_proxy(conn) 07:48:32 except (BaseSSLError, OSError, SocketTimeout) as e: 07:48:32 self._raise_timeout( 07:48:32 err=e, url=self.proxy.url, timeout_value=conn.timeout 07:48:32 ) 07:48:32 raise 07:48:32 07:48:32 # If we're going to release the connection in ``finally:``, then 07:48:32 # the response doesn't need to know about the connection. Otherwise 07:48:32 # it will also try to release it and we'll have a double-release 07:48:32 # mess. 07:48:32 response_conn = conn if not release_conn else None 07:48:32 07:48:32 # Make the request on the HTTPConnection object 07:48:32 > response = self._make_request( 07:48:32 conn, 07:48:32 method, 07:48:32 url, 07:48:32 timeout=timeout_obj, 07:48:32 body=body, 07:48:32 headers=headers, 07:48:32 chunked=chunked, 07:48:32 retries=retries, 07:48:32 response_conn=response_conn, 07:48:32 preload_content=preload_content, 07:48:32 decode_content=decode_content, 07:48:32 **response_kw, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 07:48:32 conn.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 07:48:32 self.endheaders() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 07:48:32 self._send_output(message_body, encode_chunked=encode_chunked) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 07:48:32 self.send(msg) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 07:48:32 self.connect() 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 07:48:32 self.sock = self._new_conn() 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 except socket.gaierror as e: 07:48:32 raise NameResolutionError(self.host, self, e) from e 07:48:32 except SocketTimeout as e: 07:48:32 raise ConnectTimeoutError( 07:48:32 self, 07:48:32 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 07:48:32 ) from e 07:48:32 07:48:32 except OSError as e: 07:48:32 > raise NewConnectionError( 07:48:32 self, f"Failed to establish a new connection: {e}" 07:48:32 ) from e 07:48:32 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 > resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 07:48:32 retries = retries.increment( 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 method = 'GET' 07:48:32 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=DEG1-TTP-TXRX-713:720?content=nonconfig' 07:48:32 response = None 07:48:32 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 07:48:32 _pool = 07:48:32 _stacktrace = 07:48:32 07:48:32 def increment( 07:48:32 self, 07:48:32 method: str | None = None, 07:48:32 url: str | None = None, 07:48:32 response: BaseHTTPResponse | None = None, 07:48:32 error: Exception | None = None, 07:48:32 _pool: ConnectionPool | None = None, 07:48:32 _stacktrace: TracebackType | None = None, 07:48:32 ) -> Self: 07:48:32 """Return a new Retry object with incremented retry counters. 07:48:32 07:48:32 :param response: A response object, or None, if the server did not 07:48:32 return a response. 07:48:32 :type response: :class:`~urllib3.response.BaseHTTPResponse` 07:48:32 :param Exception error: An error encountered during the request, or 07:48:32 None if the response was received successfully. 07:48:32 07:48:32 :return: A new ``Retry`` object. 07:48:32 """ 07:48:32 if self.total is False and error: 07:48:32 # Disabled, indicate to re-raise the error. 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 07:48:32 total = self.total 07:48:32 if total is not None: 07:48:32 total -= 1 07:48:32 07:48:32 connect = self.connect 07:48:32 read = self.read 07:48:32 redirect = self.redirect 07:48:32 status_count = self.status 07:48:32 other = self.other 07:48:32 cause = "unknown" 07:48:32 status = None 07:48:32 redirect_location = None 07:48:32 07:48:32 if error and self._is_connection_error(error): 07:48:32 # Connect retry? 07:48:32 if connect is False: 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif connect is not None: 07:48:32 connect -= 1 07:48:32 07:48:32 elif error and self._is_read_error(error): 07:48:32 # Read retry? 07:48:32 if read is False or method is None or not self._is_method_retryable(method): 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif read is not None: 07:48:32 read -= 1 07:48:32 07:48:32 elif error: 07:48:32 # Other retry? 07:48:32 if other is not None: 07:48:32 other -= 1 07:48:32 07:48:32 elif response and response.get_redirect_location(): 07:48:32 # Redirect retry? 07:48:32 if redirect is not None: 07:48:32 redirect -= 1 07:48:32 cause = "too many redirects" 07:48:32 response_redirect_location = response.get_redirect_location() 07:48:32 if response_redirect_location: 07:48:32 redirect_location = response_redirect_location 07:48:32 status = response.status 07:48:32 07:48:32 else: 07:48:32 # Incrementing because of a server error like a 500 in 07:48:32 # status_forcelist and the given method is in the allowed_methods 07:48:32 cause = ResponseError.GENERIC_ERROR 07:48:32 if response and response.status: 07:48:32 if status_count is not None: 07:48:32 status_count -= 1 07:48:32 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 07:48:32 status = response.status 07:48:32 07:48:32 history = self.history + ( 07:48:32 RequestHistory(method, url, error, status, redirect_location), 07:48:32 ) 07:48:32 07:48:32 new_retry = self.new( 07:48:32 total=total, 07:48:32 connect=connect, 07:48:32 read=read, 07:48:32 redirect=redirect, 07:48:32 status=status_count, 07:48:32 other=other, 07:48:32 history=history, 07:48:32 ) 07:48:32 07:48:32 if new_retry.is_exhausted(): 07:48:32 reason = error or ResponseError(cause) 07:48:32 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 07:48:32 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/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=DEG1-TTP-TXRX-713:720?content=nonconfig (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 07:48:32 07:48:32 During handling of the above exception, another exception occurred: 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_06_service_path_create_rdm_check(self): 07:48:32 > response = test_utils.check_node_attribute_request("ROADMA01", "interface", "DEG1-TTP-TXRX-713:720") 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:110: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 transportpce_tests/common/test_utils.py:401: in check_node_attribute_request 07:48:32 response = get_request(url[RESTCONF_VERSION].format('{}', node, attribute, attribute_value)) 07:48:32 transportpce_tests/common/test_utils.py:116: in get_request 07:48:32 return requests.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 07:48:32 return session.request(method=method, url=url, **kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 07:48:32 resp = self.send(prep, **send_kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 07:48:32 r = adapter.send(request, **kwargs) 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 except (ProtocolError, OSError) as err: 07:48:32 raise ConnectionError(err, request=request) 07:48:32 07:48:32 except MaxRetryError as e: 07:48:32 if isinstance(e.reason, ConnectTimeoutError): 07:48:32 # TODO: Remove this in 3.0.0: see #2811 07:48:32 if not isinstance(e.reason, NewConnectionError): 07:48:32 raise ConnectTimeout(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, ResponseError): 07:48:32 raise RetryError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _ProxyError): 07:48:32 raise ProxyError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _SSLError): 07:48:32 # This branch is for urllib3 v1.22 and later. 07:48:32 raise SSLError(e, request=request) 07:48:32 07:48:32 > raise ConnectionError(e, request=request) 07:48:32 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/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=DEG1-TTP-TXRX-713:720?content=nonconfig (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_06_service_path_create_rdm_check 07:48:32 ______ TransportPCERendererTesting.test_07_service_path_create_rdm_check _______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 > sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 07:48:32 raise err 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 address = ('localhost', 8182), timeout = 10, source_address = None 07:48:32 socket_options = [(6, 1, 1)] 07:48:32 07:48:32 def create_connection( 07:48:32 address: tuple[str, int], 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 source_address: tuple[str, int] | None = None, 07:48:32 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 07:48:32 ) -> socket.socket: 07:48:32 """Connect to *address* and return the socket object. 07:48:32 07:48:32 Convenience function. Connect to *address* (a 2-tuple ``(host, 07:48:32 port)``) and return the socket object. Passing the optional 07:48:32 *timeout* parameter will set the timeout on the socket instance 07:48:32 before attempting to connect. If no *timeout* is supplied, the 07:48:32 global default timeout setting returned by :func:`socket.getdefaulttimeout` 07:48:32 is used. If *source_address* is set it must be a tuple of (host, port) 07:48:32 for the socket to bind as a source address before making the connection. 07:48:32 An host of '' or port 0 tells the OS to use the default. 07:48:32 """ 07:48:32 07:48:32 host, port = address 07:48:32 if host.startswith("["): 07:48:32 host = host.strip("[]") 07:48:32 err = None 07:48:32 07:48:32 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 07:48:32 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 07:48:32 # The original create_connection function always returns all records. 07:48:32 family = allowed_gai_family() 07:48:32 07:48:32 try: 07:48:32 host.encode("idna") 07:48:32 except UnicodeError: 07:48:32 raise LocationParseError(f"'{host}', label empty or too long") from None 07:48:32 07:48:32 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 07:48:32 af, socktype, proto, canonname, sa = res 07:48:32 sock = None 07:48:32 try: 07:48:32 sock = socket.socket(af, socktype, proto) 07:48:32 07:48:32 # If provided, set socket level options before connecting. 07:48:32 _set_socket_options(sock, socket_options) 07:48:32 07:48:32 if timeout is not _DEFAULT_TIMEOUT: 07:48:32 sock.settimeout(timeout) 07:48:32 if source_address: 07:48:32 sock.bind(source_address) 07:48:32 > sock.connect(sa) 07:48:32 E ConnectionRefusedError: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 method = 'GET' 07:48:32 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=SRG1-PP7-TXRX-713:720?content=nonconfig' 07:48:32 body = None 07:48:32 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 07:48:32 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 redirect = False, assert_same_host = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 07:48:32 release_conn = False, chunked = False, body_pos = None, preload_content = False 07:48:32 decode_content = False, response_kw = {} 07:48:32 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/network-topology:network-topology/topology=topolog...t/org-openroadm-device:org-openroadm-device/interface=SRG1-PP7-TXRX-713:720', query='content=nonconfig', fragment=None) 07:48:32 destination_scheme = None, conn = None, release_this_conn = True 07:48:32 http_tunnel_required = False, err = None, clean_exit = False 07:48:32 07:48:32 def urlopen( # type: ignore[override] 07:48:32 self, 07:48:32 method: str, 07:48:32 url: str, 07:48:32 body: _TYPE_BODY | None = None, 07:48:32 headers: typing.Mapping[str, str] | None = None, 07:48:32 retries: Retry | bool | int | None = None, 07:48:32 redirect: bool = True, 07:48:32 assert_same_host: bool = True, 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 pool_timeout: int | None = None, 07:48:32 release_conn: bool | None = None, 07:48:32 chunked: bool = False, 07:48:32 body_pos: _TYPE_BODY_POSITION | None = None, 07:48:32 preload_content: bool = True, 07:48:32 decode_content: bool = True, 07:48:32 **response_kw: typing.Any, 07:48:32 ) -> BaseHTTPResponse: 07:48:32 """ 07:48:32 Get a connection from the pool and perform an HTTP request. This is the 07:48:32 lowest level call for making a request, so you'll need to specify all 07:48:32 the raw details. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 More commonly, it's appropriate to use a convenience method 07:48:32 such as :meth:`request`. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 `release_conn` will only behave as expected if 07:48:32 `preload_content=False` because we want to make 07:48:32 `preload_content=False` the default behaviour someday soon without 07:48:32 breaking backwards compatibility. 07:48:32 07:48:32 :param method: 07:48:32 HTTP request method (such as GET, POST, PUT, etc.) 07:48:32 07:48:32 :param url: 07:48:32 The URL to perform the request on. 07:48:32 07:48:32 :param body: 07:48:32 Data to send in the request body, either :class:`str`, :class:`bytes`, 07:48:32 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 07:48:32 07:48:32 :param headers: 07:48:32 Dictionary of custom headers to send, such as User-Agent, 07:48:32 If-None-Match, etc. If None, pool headers are used. If provided, 07:48:32 these headers completely replace any pool-specific headers. 07:48:32 07:48:32 :param retries: 07:48:32 Configure the number of retries to allow before raising a 07:48:32 :class:`~urllib3.exceptions.MaxRetryError` exception. 07:48:32 07:48:32 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 07:48:32 :class:`~urllib3.util.retry.Retry` object for fine-grained control 07:48:32 over different types of retries. 07:48:32 Pass an integer number to retry connection errors that many times, 07:48:32 but no other types of errors. Pass zero to never retry. 07:48:32 07:48:32 If ``False``, then retries are disabled and any exception is raised 07:48:32 immediately. Also, instead of raising a MaxRetryError on redirects, 07:48:32 the redirect response will be returned. 07:48:32 07:48:32 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 07:48:32 07:48:32 :param redirect: 07:48:32 If True, automatically handle redirects (status codes 301, 302, 07:48:32 303, 307, 308). Each redirect counts as a retry. Disabling retries 07:48:32 will disable redirect, too. 07:48:32 07:48:32 :param assert_same_host: 07:48:32 If ``True``, will make sure that the host of the pool requests is 07:48:32 consistent else will raise HostChangedError. When ``False``, you can 07:48:32 use the pool on an HTTP proxy and request foreign hosts. 07:48:32 07:48:32 :param timeout: 07:48:32 If specified, overrides the default timeout for this one 07:48:32 request. It may be a float (in seconds) or an instance of 07:48:32 :class:`urllib3.util.Timeout`. 07:48:32 07:48:32 :param pool_timeout: 07:48:32 If set and the pool is set to block=True, then this method will 07:48:32 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 07:48:32 connection is available within the time period. 07:48:32 07:48:32 :param bool preload_content: 07:48:32 If True, the response's body will be preloaded into memory. 07:48:32 07:48:32 :param bool decode_content: 07:48:32 If True, will attempt to decode the body based on the 07:48:32 'content-encoding' header. 07:48:32 07:48:32 :param release_conn: 07:48:32 If False, then the urlopen call will not release the connection 07:48:32 back into the pool once a response is received (but will release if 07:48:32 you read the entire contents of the response such as when 07:48:32 `preload_content=True`). This is useful if you're not preloading 07:48:32 the response's content immediately. You will need to call 07:48:32 ``r.release_conn()`` on the response ``r`` to return the connection 07:48:32 back into the pool. If None, it takes the value of ``preload_content`` 07:48:32 which defaults to ``True``. 07:48:32 07:48:32 :param bool chunked: 07:48:32 If True, urllib3 will send the body using chunked transfer 07:48:32 encoding. Otherwise, urllib3 will send the body using the standard 07:48:32 content-length form. Defaults to False. 07:48:32 07:48:32 :param int body_pos: 07:48:32 Position to seek to in file-like body in the event of a retry or 07:48:32 redirect. Typically this won't need to be set because urllib3 will 07:48:32 auto-populate the value when needed. 07:48:32 """ 07:48:32 parsed_url = parse_url(url) 07:48:32 destination_scheme = parsed_url.scheme 07:48:32 07:48:32 if headers is None: 07:48:32 headers = self.headers 07:48:32 07:48:32 if not isinstance(retries, Retry): 07:48:32 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 07:48:32 07:48:32 if release_conn is None: 07:48:32 release_conn = preload_content 07:48:32 07:48:32 # Check host 07:48:32 if assert_same_host and not self.is_same_host(url): 07:48:32 raise HostChangedError(self, url, retries) 07:48:32 07:48:32 # Ensure that the URL we're connecting to is properly encoded 07:48:32 if url.startswith("/"): 07:48:32 url = to_str(_encode_target(url)) 07:48:32 else: 07:48:32 url = to_str(parsed_url.url) 07:48:32 07:48:32 conn = None 07:48:32 07:48:32 # Track whether `conn` needs to be released before 07:48:32 # returning/raising/recursing. Update this variable if necessary, and 07:48:32 # leave `release_conn` constant throughout the function. That way, if 07:48:32 # the function recurses, the original value of `release_conn` will be 07:48:32 # passed down into the recursive call, and its value will be respected. 07:48:32 # 07:48:32 # See issue #651 [1] for details. 07:48:32 # 07:48:32 # [1] 07:48:32 release_this_conn = release_conn 07:48:32 07:48:32 http_tunnel_required = connection_requires_http_tunnel( 07:48:32 self.proxy, self.proxy_config, destination_scheme 07:48:32 ) 07:48:32 07:48:32 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 07:48:32 # have to copy the headers dict so we can safely change it without those 07:48:32 # changes being reflected in anyone else's copy. 07:48:32 if not http_tunnel_required: 07:48:32 headers = headers.copy() # type: ignore[attr-defined] 07:48:32 headers.update(self.proxy_headers) # type: ignore[union-attr] 07:48:32 07:48:32 # Must keep the exception bound to a separate variable or else Python 3 07:48:32 # complains about UnboundLocalError. 07:48:32 err = None 07:48:32 07:48:32 # Keep track of whether we cleanly exited the except block. This 07:48:32 # ensures we do proper cleanup in finally. 07:48:32 clean_exit = False 07:48:32 07:48:32 # Rewind body position, if needed. Record current position 07:48:32 # for future rewinds in the event of a redirect/retry. 07:48:32 body_pos = set_file_position(body, body_pos) 07:48:32 07:48:32 try: 07:48:32 # Request a connection from the queue. 07:48:32 timeout_obj = self._get_timeout(timeout) 07:48:32 conn = self._get_conn(timeout=pool_timeout) 07:48:32 07:48:32 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 07:48:32 07:48:32 # Is this a closed/new connection that requires CONNECT tunnelling? 07:48:32 if self.proxy is not None and http_tunnel_required and conn.is_closed: 07:48:32 try: 07:48:32 self._prepare_proxy(conn) 07:48:32 except (BaseSSLError, OSError, SocketTimeout) as e: 07:48:32 self._raise_timeout( 07:48:32 err=e, url=self.proxy.url, timeout_value=conn.timeout 07:48:32 ) 07:48:32 raise 07:48:32 07:48:32 # If we're going to release the connection in ``finally:``, then 07:48:32 # the response doesn't need to know about the connection. Otherwise 07:48:32 # it will also try to release it and we'll have a double-release 07:48:32 # mess. 07:48:32 response_conn = conn if not release_conn else None 07:48:32 07:48:32 # Make the request on the HTTPConnection object 07:48:32 > response = self._make_request( 07:48:32 conn, 07:48:32 method, 07:48:32 url, 07:48:32 timeout=timeout_obj, 07:48:32 body=body, 07:48:32 headers=headers, 07:48:32 chunked=chunked, 07:48:32 retries=retries, 07:48:32 response_conn=response_conn, 07:48:32 preload_content=preload_content, 07:48:32 decode_content=decode_content, 07:48:32 **response_kw, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 07:48:32 conn.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 07:48:32 self.endheaders() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 07:48:32 self._send_output(message_body, encode_chunked=encode_chunked) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 07:48:32 self.send(msg) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 07:48:32 self.connect() 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 07:48:32 self.sock = self._new_conn() 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 except socket.gaierror as e: 07:48:32 raise NameResolutionError(self.host, self, e) from e 07:48:32 except SocketTimeout as e: 07:48:32 raise ConnectTimeoutError( 07:48:32 self, 07:48:32 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 07:48:32 ) from e 07:48:32 07:48:32 except OSError as e: 07:48:32 > raise NewConnectionError( 07:48:32 self, f"Failed to establish a new connection: {e}" 07:48:32 ) from e 07:48:32 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 > resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 07:48:32 retries = retries.increment( 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 method = 'GET' 07:48:32 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=SRG1-PP7-TXRX-713:720?content=nonconfig' 07:48:32 response = None 07:48:32 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 07:48:32 _pool = 07:48:32 _stacktrace = 07:48:32 07:48:32 def increment( 07:48:32 self, 07:48:32 method: str | None = None, 07:48:32 url: str | None = None, 07:48:32 response: BaseHTTPResponse | None = None, 07:48:32 error: Exception | None = None, 07:48:32 _pool: ConnectionPool | None = None, 07:48:32 _stacktrace: TracebackType | None = None, 07:48:32 ) -> Self: 07:48:32 """Return a new Retry object with incremented retry counters. 07:48:32 07:48:32 :param response: A response object, or None, if the server did not 07:48:32 return a response. 07:48:32 :type response: :class:`~urllib3.response.BaseHTTPResponse` 07:48:32 :param Exception error: An error encountered during the request, or 07:48:32 None if the response was received successfully. 07:48:32 07:48:32 :return: A new ``Retry`` object. 07:48:32 """ 07:48:32 if self.total is False and error: 07:48:32 # Disabled, indicate to re-raise the error. 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 07:48:32 total = self.total 07:48:32 if total is not None: 07:48:32 total -= 1 07:48:32 07:48:32 connect = self.connect 07:48:32 read = self.read 07:48:32 redirect = self.redirect 07:48:32 status_count = self.status 07:48:32 other = self.other 07:48:32 cause = "unknown" 07:48:32 status = None 07:48:32 redirect_location = None 07:48:32 07:48:32 if error and self._is_connection_error(error): 07:48:32 # Connect retry? 07:48:32 if connect is False: 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif connect is not None: 07:48:32 connect -= 1 07:48:32 07:48:32 elif error and self._is_read_error(error): 07:48:32 # Read retry? 07:48:32 if read is False or method is None or not self._is_method_retryable(method): 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif read is not None: 07:48:32 read -= 1 07:48:32 07:48:32 elif error: 07:48:32 # Other retry? 07:48:32 if other is not None: 07:48:32 other -= 1 07:48:32 07:48:32 elif response and response.get_redirect_location(): 07:48:32 # Redirect retry? 07:48:32 if redirect is not None: 07:48:32 redirect -= 1 07:48:32 cause = "too many redirects" 07:48:32 response_redirect_location = response.get_redirect_location() 07:48:32 if response_redirect_location: 07:48:32 redirect_location = response_redirect_location 07:48:32 status = response.status 07:48:32 07:48:32 else: 07:48:32 # Incrementing because of a server error like a 500 in 07:48:32 # status_forcelist and the given method is in the allowed_methods 07:48:32 cause = ResponseError.GENERIC_ERROR 07:48:32 if response and response.status: 07:48:32 if status_count is not None: 07:48:32 status_count -= 1 07:48:32 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 07:48:32 status = response.status 07:48:32 07:48:32 history = self.history + ( 07:48:32 RequestHistory(method, url, error, status, redirect_location), 07:48:32 ) 07:48:32 07:48:32 new_retry = self.new( 07:48:32 total=total, 07:48:32 connect=connect, 07:48:32 read=read, 07:48:32 redirect=redirect, 07:48:32 status=status_count, 07:48:32 other=other, 07:48:32 history=history, 07:48:32 ) 07:48:32 07:48:32 if new_retry.is_exhausted(): 07:48:32 reason = error or ResponseError(cause) 07:48:32 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 07:48:32 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/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=SRG1-PP7-TXRX-713:720?content=nonconfig (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 07:48:32 07:48:32 During handling of the above exception, another exception occurred: 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_07_service_path_create_rdm_check(self): 07:48:32 > response = test_utils.check_node_attribute_request("ROADMA01", "interface", "SRG1-PP7-TXRX-713:720") 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:126: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 transportpce_tests/common/test_utils.py:401: in check_node_attribute_request 07:48:32 response = get_request(url[RESTCONF_VERSION].format('{}', node, attribute, attribute_value)) 07:48:32 transportpce_tests/common/test_utils.py:116: in get_request 07:48:32 return requests.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 07:48:32 return session.request(method=method, url=url, **kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 07:48:32 resp = self.send(prep, **send_kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 07:48:32 r = adapter.send(request, **kwargs) 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 except (ProtocolError, OSError) as err: 07:48:32 raise ConnectionError(err, request=request) 07:48:32 07:48:32 except MaxRetryError as e: 07:48:32 if isinstance(e.reason, ConnectTimeoutError): 07:48:32 # TODO: Remove this in 3.0.0: see #2811 07:48:32 if not isinstance(e.reason, NewConnectionError): 07:48:32 raise ConnectTimeout(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, ResponseError): 07:48:32 raise RetryError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _ProxyError): 07:48:32 raise ProxyError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _SSLError): 07:48:32 # This branch is for urllib3 v1.22 and later. 07:48:32 raise SSLError(e, request=request) 07:48:32 07:48:32 > raise ConnectionError(e, request=request) 07:48:32 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/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=SRG1-PP7-TXRX-713:720?content=nonconfig (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_07_service_path_create_rdm_check 07:48:32 ______ TransportPCERendererTesting.test_08_service_path_create_rdm_check _______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 > sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 07:48:32 raise err 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 address = ('localhost', 8182), timeout = 10, source_address = None 07:48:32 socket_options = [(6, 1, 1)] 07:48:32 07:48:32 def create_connection( 07:48:32 address: tuple[str, int], 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 source_address: tuple[str, int] | None = None, 07:48:32 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 07:48:32 ) -> socket.socket: 07:48:32 """Connect to *address* and return the socket object. 07:48:32 07:48:32 Convenience function. Connect to *address* (a 2-tuple ``(host, 07:48:32 port)``) and return the socket object. Passing the optional 07:48:32 *timeout* parameter will set the timeout on the socket instance 07:48:32 before attempting to connect. If no *timeout* is supplied, the 07:48:32 global default timeout setting returned by :func:`socket.getdefaulttimeout` 07:48:32 is used. If *source_address* is set it must be a tuple of (host, port) 07:48:32 for the socket to bind as a source address before making the connection. 07:48:32 An host of '' or port 0 tells the OS to use the default. 07:48:32 """ 07:48:32 07:48:32 host, port = address 07:48:32 if host.startswith("["): 07:48:32 host = host.strip("[]") 07:48:32 err = None 07:48:32 07:48:32 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 07:48:32 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 07:48:32 # The original create_connection function always returns all records. 07:48:32 family = allowed_gai_family() 07:48:32 07:48:32 try: 07:48:32 host.encode("idna") 07:48:32 except UnicodeError: 07:48:32 raise LocationParseError(f"'{host}', label empty or too long") from None 07:48:32 07:48:32 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 07:48:32 af, socktype, proto, canonname, sa = res 07:48:32 sock = None 07:48:32 try: 07:48:32 sock = socket.socket(af, socktype, proto) 07:48:32 07:48:32 # If provided, set socket level options before connecting. 07:48:32 _set_socket_options(sock, socket_options) 07:48:32 07:48:32 if timeout is not _DEFAULT_TIMEOUT: 07:48:32 sock.settimeout(timeout) 07:48:32 if source_address: 07:48:32 sock.bind(source_address) 07:48:32 > sock.connect(sa) 07:48:32 E ConnectionRefusedError: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 method = 'GET' 07:48:32 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/roadm-connections=SRG1-PP7-TXRX-DEG1-TTP-TXRX-713:720?content=nonconfig' 07:48:32 body = None 07:48:32 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 07:48:32 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 redirect = False, assert_same_host = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 07:48:32 release_conn = False, chunked = False, body_pos = None, preload_content = False 07:48:32 decode_content = False, response_kw = {} 07:48:32 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/network-topology:network-topology/topology=topolog...:org-openroadm-device/roadm-connections=SRG1-PP7-TXRX-DEG1-TTP-TXRX-713:720', query='content=nonconfig', fragment=None) 07:48:32 destination_scheme = None, conn = None, release_this_conn = True 07:48:32 http_tunnel_required = False, err = None, clean_exit = False 07:48:32 07:48:32 def urlopen( # type: ignore[override] 07:48:32 self, 07:48:32 method: str, 07:48:32 url: str, 07:48:32 body: _TYPE_BODY | None = None, 07:48:32 headers: typing.Mapping[str, str] | None = None, 07:48:32 retries: Retry | bool | int | None = None, 07:48:32 redirect: bool = True, 07:48:32 assert_same_host: bool = True, 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 pool_timeout: int | None = None, 07:48:32 release_conn: bool | None = None, 07:48:32 chunked: bool = False, 07:48:32 body_pos: _TYPE_BODY_POSITION | None = None, 07:48:32 preload_content: bool = True, 07:48:32 decode_content: bool = True, 07:48:32 **response_kw: typing.Any, 07:48:32 ) -> BaseHTTPResponse: 07:48:32 """ 07:48:32 Get a connection from the pool and perform an HTTP request. This is the 07:48:32 lowest level call for making a request, so you'll need to specify all 07:48:32 the raw details. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 More commonly, it's appropriate to use a convenience method 07:48:32 such as :meth:`request`. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 `release_conn` will only behave as expected if 07:48:32 `preload_content=False` because we want to make 07:48:32 `preload_content=False` the default behaviour someday soon without 07:48:32 breaking backwards compatibility. 07:48:32 07:48:32 :param method: 07:48:32 HTTP request method (such as GET, POST, PUT, etc.) 07:48:32 07:48:32 :param url: 07:48:32 The URL to perform the request on. 07:48:32 07:48:32 :param body: 07:48:32 Data to send in the request body, either :class:`str`, :class:`bytes`, 07:48:32 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 07:48:32 07:48:32 :param headers: 07:48:32 Dictionary of custom headers to send, such as User-Agent, 07:48:32 If-None-Match, etc. If None, pool headers are used. If provided, 07:48:32 these headers completely replace any pool-specific headers. 07:48:32 07:48:32 :param retries: 07:48:32 Configure the number of retries to allow before raising a 07:48:32 :class:`~urllib3.exceptions.MaxRetryError` exception. 07:48:32 07:48:32 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 07:48:32 :class:`~urllib3.util.retry.Retry` object for fine-grained control 07:48:32 over different types of retries. 07:48:32 Pass an integer number to retry connection errors that many times, 07:48:32 but no other types of errors. Pass zero to never retry. 07:48:32 07:48:32 If ``False``, then retries are disabled and any exception is raised 07:48:32 immediately. Also, instead of raising a MaxRetryError on redirects, 07:48:32 the redirect response will be returned. 07:48:32 07:48:32 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 07:48:32 07:48:32 :param redirect: 07:48:32 If True, automatically handle redirects (status codes 301, 302, 07:48:32 303, 307, 308). Each redirect counts as a retry. Disabling retries 07:48:32 will disable redirect, too. 07:48:32 07:48:32 :param assert_same_host: 07:48:32 If ``True``, will make sure that the host of the pool requests is 07:48:32 consistent else will raise HostChangedError. When ``False``, you can 07:48:32 use the pool on an HTTP proxy and request foreign hosts. 07:48:32 07:48:32 :param timeout: 07:48:32 If specified, overrides the default timeout for this one 07:48:32 request. It may be a float (in seconds) or an instance of 07:48:32 :class:`urllib3.util.Timeout`. 07:48:32 07:48:32 :param pool_timeout: 07:48:32 If set and the pool is set to block=True, then this method will 07:48:32 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 07:48:32 connection is available within the time period. 07:48:32 07:48:32 :param bool preload_content: 07:48:32 If True, the response's body will be preloaded into memory. 07:48:32 07:48:32 :param bool decode_content: 07:48:32 If True, will attempt to decode the body based on the 07:48:32 'content-encoding' header. 07:48:32 07:48:32 :param release_conn: 07:48:32 If False, then the urlopen call will not release the connection 07:48:32 back into the pool once a response is received (but will release if 07:48:32 you read the entire contents of the response such as when 07:48:32 `preload_content=True`). This is useful if you're not preloading 07:48:32 the response's content immediately. You will need to call 07:48:32 ``r.release_conn()`` on the response ``r`` to return the connection 07:48:32 back into the pool. If None, it takes the value of ``preload_content`` 07:48:32 which defaults to ``True``. 07:48:32 07:48:32 :param bool chunked: 07:48:32 If True, urllib3 will send the body using chunked transfer 07:48:32 encoding. Otherwise, urllib3 will send the body using the standard 07:48:32 content-length form. Defaults to False. 07:48:32 07:48:32 :param int body_pos: 07:48:32 Position to seek to in file-like body in the event of a retry or 07:48:32 redirect. Typically this won't need to be set because urllib3 will 07:48:32 auto-populate the value when needed. 07:48:32 """ 07:48:32 parsed_url = parse_url(url) 07:48:32 destination_scheme = parsed_url.scheme 07:48:32 07:48:32 if headers is None: 07:48:32 headers = self.headers 07:48:32 07:48:32 if not isinstance(retries, Retry): 07:48:32 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 07:48:32 07:48:32 if release_conn is None: 07:48:32 release_conn = preload_content 07:48:32 07:48:32 # Check host 07:48:32 if assert_same_host and not self.is_same_host(url): 07:48:32 raise HostChangedError(self, url, retries) 07:48:32 07:48:32 # Ensure that the URL we're connecting to is properly encoded 07:48:32 if url.startswith("/"): 07:48:32 url = to_str(_encode_target(url)) 07:48:32 else: 07:48:32 url = to_str(parsed_url.url) 07:48:32 07:48:32 conn = None 07:48:32 07:48:32 # Track whether `conn` needs to be released before 07:48:32 # returning/raising/recursing. Update this variable if necessary, and 07:48:32 # leave `release_conn` constant throughout the function. That way, if 07:48:32 # the function recurses, the original value of `release_conn` will be 07:48:32 # passed down into the recursive call, and its value will be respected. 07:48:32 # 07:48:32 # See issue #651 [1] for details. 07:48:32 # 07:48:32 # [1] 07:48:32 release_this_conn = release_conn 07:48:32 07:48:32 http_tunnel_required = connection_requires_http_tunnel( 07:48:32 self.proxy, self.proxy_config, destination_scheme 07:48:32 ) 07:48:32 07:48:32 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 07:48:32 # have to copy the headers dict so we can safely change it without those 07:48:32 # changes being reflected in anyone else's copy. 07:48:32 if not http_tunnel_required: 07:48:32 headers = headers.copy() # type: ignore[attr-defined] 07:48:32 headers.update(self.proxy_headers) # type: ignore[union-attr] 07:48:32 07:48:32 # Must keep the exception bound to a separate variable or else Python 3 07:48:32 # complains about UnboundLocalError. 07:48:32 err = None 07:48:32 07:48:32 # Keep track of whether we cleanly exited the except block. This 07:48:32 # ensures we do proper cleanup in finally. 07:48:32 clean_exit = False 07:48:32 07:48:32 # Rewind body position, if needed. Record current position 07:48:32 # for future rewinds in the event of a redirect/retry. 07:48:32 body_pos = set_file_position(body, body_pos) 07:48:32 07:48:32 try: 07:48:32 # Request a connection from the queue. 07:48:32 timeout_obj = self._get_timeout(timeout) 07:48:32 conn = self._get_conn(timeout=pool_timeout) 07:48:32 07:48:32 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 07:48:32 07:48:32 # Is this a closed/new connection that requires CONNECT tunnelling? 07:48:32 if self.proxy is not None and http_tunnel_required and conn.is_closed: 07:48:32 try: 07:48:32 self._prepare_proxy(conn) 07:48:32 except (BaseSSLError, OSError, SocketTimeout) as e: 07:48:32 self._raise_timeout( 07:48:32 err=e, url=self.proxy.url, timeout_value=conn.timeout 07:48:32 ) 07:48:32 raise 07:48:32 07:48:32 # If we're going to release the connection in ``finally:``, then 07:48:32 # the response doesn't need to know about the connection. Otherwise 07:48:32 # it will also try to release it and we'll have a double-release 07:48:32 # mess. 07:48:32 response_conn = conn if not release_conn else None 07:48:32 07:48:32 # Make the request on the HTTPConnection object 07:48:32 > response = self._make_request( 07:48:32 conn, 07:48:32 method, 07:48:32 url, 07:48:32 timeout=timeout_obj, 07:48:32 body=body, 07:48:32 headers=headers, 07:48:32 chunked=chunked, 07:48:32 retries=retries, 07:48:32 response_conn=response_conn, 07:48:32 preload_content=preload_content, 07:48:32 decode_content=decode_content, 07:48:32 **response_kw, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 07:48:32 conn.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 07:48:32 self.endheaders() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 07:48:32 self._send_output(message_body, encode_chunked=encode_chunked) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 07:48:32 self.send(msg) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 07:48:32 self.connect() 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 07:48:32 self.sock = self._new_conn() 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 except socket.gaierror as e: 07:48:32 raise NameResolutionError(self.host, self, e) from e 07:48:32 except SocketTimeout as e: 07:48:32 raise ConnectTimeoutError( 07:48:32 self, 07:48:32 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 07:48:32 ) from e 07:48:32 07:48:32 except OSError as e: 07:48:32 > raise NewConnectionError( 07:48:32 self, f"Failed to establish a new connection: {e}" 07:48:32 ) from e 07:48:32 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 > resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 07:48:32 retries = retries.increment( 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 method = 'GET' 07:48:32 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=ROADMA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/roadm-connections=SRG1-PP7-TXRX-DEG1-TTP-TXRX-713:720?content=nonconfig' 07:48:32 response = None 07:48:32 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 07:48:32 _pool = 07:48:32 _stacktrace = 07:48:32 07:48:32 def increment( 07:48:32 self, 07:48:32 method: str | None = None, 07:48:32 url: str | None = None, 07:48:32 response: BaseHTTPResponse | None = None, 07:48:32 error: Exception | None = None, 07:48:32 _pool: ConnectionPool | None = None, 07:48:32 _stacktrace: TracebackType | None = None, 07:48:32 ) -> Self: 07:48:32 """Return a new Retry object with incremented retry counters. 07:48:32 07:48:32 :param response: A response object, or None, if the server did not 07:48:32 return a response. 07:48:32 :type response: :class:`~urllib3.response.BaseHTTPResponse` 07:48:32 :param Exception error: An error encountered during the request, or 07:48:32 None if the response was received successfully. 07:48:32 07:48:32 :return: A new ``Retry`` object. 07:48:32 """ 07:48:32 if self.total is False and error: 07:48:32 # Disabled, indicate to re-raise the error. 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 07:48:32 total = self.total 07:48:32 if total is not None: 07:48:32 total -= 1 07:48:32 07:48:32 connect = self.connect 07:48:32 read = self.read 07:48:32 redirect = self.redirect 07:48:32 status_count = self.status 07:48:32 other = self.other 07:48:32 cause = "unknown" 07:48:32 status = None 07:48:32 redirect_location = None 07:48:32 07:48:32 if error and self._is_connection_error(error): 07:48:32 # Connect retry? 07:48:32 if connect is False: 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif connect is not None: 07:48:32 connect -= 1 07:48:32 07:48:32 elif error and self._is_read_error(error): 07:48:32 # Read retry? 07:48:32 if read is False or method is None or not self._is_method_retryable(method): 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif read is not None: 07:48:32 read -= 1 07:48:32 07:48:32 elif error: 07:48:32 # Other retry? 07:48:32 if other is not None: 07:48:32 other -= 1 07:48:32 07:48:32 elif response and response.get_redirect_location(): 07:48:32 # Redirect retry? 07:48:32 if redirect is not None: 07:48:32 redirect -= 1 07:48:32 cause = "too many redirects" 07:48:32 response_redirect_location = response.get_redirect_location() 07:48:32 if response_redirect_location: 07:48:32 redirect_location = response_redirect_location 07:48:32 status = response.status 07:48:32 07:48:32 else: 07:48:32 # Incrementing because of a server error like a 500 in 07:48:32 # status_forcelist and the given method is in the allowed_methods 07:48:32 cause = ResponseError.GENERIC_ERROR 07:48:32 if response and response.status: 07:48:32 if status_count is not None: 07:48:32 status_count -= 1 07:48:32 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 07:48:32 status = response.status 07:48:32 07:48:32 history = self.history + ( 07:48:32 RequestHistory(method, url, error, status, redirect_location), 07:48:32 ) 07:48:32 07:48:32 new_retry = self.new( 07:48:32 total=total, 07:48:32 connect=connect, 07:48:32 read=read, 07:48:32 redirect=redirect, 07:48:32 status=status_count, 07:48:32 other=other, 07:48:32 history=history, 07:48:32 ) 07:48:32 07:48:32 if new_retry.is_exhausted(): 07:48:32 reason = error or ResponseError(cause) 07:48:32 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 07:48:32 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/yang-ext:mount/org-openroadm-device:org-openroadm-device/roadm-connections=SRG1-PP7-TXRX-DEG1-TTP-TXRX-713:720?content=nonconfig (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 07:48:32 07:48:32 During handling of the above exception, another exception occurred: 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_08_service_path_create_rdm_check(self): 07:48:32 > response = test_utils.check_node_attribute_request( 07:48:32 "ROADMA01", "roadm-connections", "SRG1-PP7-TXRX-DEG1-TTP-TXRX-713:720") 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:142: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 transportpce_tests/common/test_utils.py:401: in check_node_attribute_request 07:48:32 response = get_request(url[RESTCONF_VERSION].format('{}', node, attribute, attribute_value)) 07:48:32 transportpce_tests/common/test_utils.py:116: in get_request 07:48:32 return requests.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 07:48:32 return session.request(method=method, url=url, **kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 07:48:32 resp = self.send(prep, **send_kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 07:48:32 r = adapter.send(request, **kwargs) 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 except (ProtocolError, OSError) as err: 07:48:32 raise ConnectionError(err, request=request) 07:48:32 07:48:32 except MaxRetryError as e: 07:48:32 if isinstance(e.reason, ConnectTimeoutError): 07:48:32 # TODO: Remove this in 3.0.0: see #2811 07:48:32 if not isinstance(e.reason, NewConnectionError): 07:48:32 raise ConnectTimeout(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, ResponseError): 07:48:32 raise RetryError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _ProxyError): 07:48:32 raise ProxyError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _SSLError): 07:48:32 # This branch is for urllib3 v1.22 and later. 07:48:32 raise SSLError(e, request=request) 07:48:32 07:48:32 > raise ConnectionError(e, request=request) 07:48:32 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/yang-ext:mount/org-openroadm-device:org-openroadm-device/roadm-connections=SRG1-PP7-TXRX-DEG1-TTP-TXRX-713:720?content=nonconfig (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_08_service_path_create_rdm_check 07:48:32 ______ TransportPCERendererTesting.test_09_service_path_create_xpdr_check ______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 > sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:199: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 07:48:32 raise err 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 address = ('localhost', 8182), timeout = 10, source_address = None 07:48:32 socket_options = [(6, 1, 1)] 07:48:32 07:48:32 def create_connection( 07:48:32 address: tuple[str, int], 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 source_address: tuple[str, int] | None = None, 07:48:32 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 07:48:32 ) -> socket.socket: 07:48:32 """Connect to *address* and return the socket object. 07:48:32 07:48:32 Convenience function. Connect to *address* (a 2-tuple ``(host, 07:48:32 port)``) and return the socket object. Passing the optional 07:48:32 *timeout* parameter will set the timeout on the socket instance 07:48:32 before attempting to connect. If no *timeout* is supplied, the 07:48:32 global default timeout setting returned by :func:`socket.getdefaulttimeout` 07:48:32 is used. If *source_address* is set it must be a tuple of (host, port) 07:48:32 for the socket to bind as a source address before making the connection. 07:48:32 An host of '' or port 0 tells the OS to use the default. 07:48:32 """ 07:48:32 07:48:32 host, port = address 07:48:32 if host.startswith("["): 07:48:32 host = host.strip("[]") 07:48:32 err = None 07:48:32 07:48:32 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 07:48:32 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 07:48:32 # The original create_connection function always returns all records. 07:48:32 family = allowed_gai_family() 07:48:32 07:48:32 try: 07:48:32 host.encode("idna") 07:48:32 except UnicodeError: 07:48:32 raise LocationParseError(f"'{host}', label empty or too long") from None 07:48:32 07:48:32 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 07:48:32 af, socktype, proto, canonname, sa = res 07:48:32 sock = None 07:48:32 try: 07:48:32 sock = socket.socket(af, socktype, proto) 07:48:32 07:48:32 # If provided, set socket level options before connecting. 07:48:32 _set_socket_options(sock, socket_options) 07:48:32 07:48:32 if timeout is not _DEFAULT_TIMEOUT: 07:48:32 sock.settimeout(timeout) 07:48:32 if source_address: 07:48:32 sock.bind(source_address) 07:48:32 > sock.connect(sa) 07:48:32 E ConnectionRefusedError: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 method = 'GET' 07:48:32 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=XPDR1-NETWORK1-713:720?content=nonconfig' 07:48:32 body = None 07:48:32 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 07:48:32 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 redirect = False, assert_same_host = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 07:48:32 release_conn = False, chunked = False, body_pos = None, preload_content = False 07:48:32 decode_content = False, response_kw = {} 07:48:32 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/network-topology:network-topology/topology=topolog.../org-openroadm-device:org-openroadm-device/interface=XPDR1-NETWORK1-713:720', query='content=nonconfig', fragment=None) 07:48:32 destination_scheme = None, conn = None, release_this_conn = True 07:48:32 http_tunnel_required = False, err = None, clean_exit = False 07:48:32 07:48:32 def urlopen( # type: ignore[override] 07:48:32 self, 07:48:32 method: str, 07:48:32 url: str, 07:48:32 body: _TYPE_BODY | None = None, 07:48:32 headers: typing.Mapping[str, str] | None = None, 07:48:32 retries: Retry | bool | int | None = None, 07:48:32 redirect: bool = True, 07:48:32 assert_same_host: bool = True, 07:48:32 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 07:48:32 pool_timeout: int | None = None, 07:48:32 release_conn: bool | None = None, 07:48:32 chunked: bool = False, 07:48:32 body_pos: _TYPE_BODY_POSITION | None = None, 07:48:32 preload_content: bool = True, 07:48:32 decode_content: bool = True, 07:48:32 **response_kw: typing.Any, 07:48:32 ) -> BaseHTTPResponse: 07:48:32 """ 07:48:32 Get a connection from the pool and perform an HTTP request. This is the 07:48:32 lowest level call for making a request, so you'll need to specify all 07:48:32 the raw details. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 More commonly, it's appropriate to use a convenience method 07:48:32 such as :meth:`request`. 07:48:32 07:48:32 .. note:: 07:48:32 07:48:32 `release_conn` will only behave as expected if 07:48:32 `preload_content=False` because we want to make 07:48:32 `preload_content=False` the default behaviour someday soon without 07:48:32 breaking backwards compatibility. 07:48:32 07:48:32 :param method: 07:48:32 HTTP request method (such as GET, POST, PUT, etc.) 07:48:32 07:48:32 :param url: 07:48:32 The URL to perform the request on. 07:48:32 07:48:32 :param body: 07:48:32 Data to send in the request body, either :class:`str`, :class:`bytes`, 07:48:32 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 07:48:32 07:48:32 :param headers: 07:48:32 Dictionary of custom headers to send, such as User-Agent, 07:48:32 If-None-Match, etc. If None, pool headers are used. If provided, 07:48:32 these headers completely replace any pool-specific headers. 07:48:32 07:48:32 :param retries: 07:48:32 Configure the number of retries to allow before raising a 07:48:32 :class:`~urllib3.exceptions.MaxRetryError` exception. 07:48:32 07:48:32 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 07:48:32 :class:`~urllib3.util.retry.Retry` object for fine-grained control 07:48:32 over different types of retries. 07:48:32 Pass an integer number to retry connection errors that many times, 07:48:32 but no other types of errors. Pass zero to never retry. 07:48:32 07:48:32 If ``False``, then retries are disabled and any exception is raised 07:48:32 immediately. Also, instead of raising a MaxRetryError on redirects, 07:48:32 the redirect response will be returned. 07:48:32 07:48:32 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 07:48:32 07:48:32 :param redirect: 07:48:32 If True, automatically handle redirects (status codes 301, 302, 07:48:32 303, 307, 308). Each redirect counts as a retry. Disabling retries 07:48:32 will disable redirect, too. 07:48:32 07:48:32 :param assert_same_host: 07:48:32 If ``True``, will make sure that the host of the pool requests is 07:48:32 consistent else will raise HostChangedError. When ``False``, you can 07:48:32 use the pool on an HTTP proxy and request foreign hosts. 07:48:32 07:48:32 :param timeout: 07:48:32 If specified, overrides the default timeout for this one 07:48:32 request. It may be a float (in seconds) or an instance of 07:48:32 :class:`urllib3.util.Timeout`. 07:48:32 07:48:32 :param pool_timeout: 07:48:32 If set and the pool is set to block=True, then this method will 07:48:32 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 07:48:32 connection is available within the time period. 07:48:32 07:48:32 :param bool preload_content: 07:48:32 If True, the response's body will be preloaded into memory. 07:48:32 07:48:32 :param bool decode_content: 07:48:32 If True, will attempt to decode the body based on the 07:48:32 'content-encoding' header. 07:48:32 07:48:32 :param release_conn: 07:48:32 If False, then the urlopen call will not release the connection 07:48:32 back into the pool once a response is received (but will release if 07:48:32 you read the entire contents of the response such as when 07:48:32 `preload_content=True`). This is useful if you're not preloading 07:48:32 the response's content immediately. You will need to call 07:48:32 ``r.release_conn()`` on the response ``r`` to return the connection 07:48:32 back into the pool. If None, it takes the value of ``preload_content`` 07:48:32 which defaults to ``True``. 07:48:32 07:48:32 :param bool chunked: 07:48:32 If True, urllib3 will send the body using chunked transfer 07:48:32 encoding. Otherwise, urllib3 will send the body using the standard 07:48:32 content-length form. Defaults to False. 07:48:32 07:48:32 :param int body_pos: 07:48:32 Position to seek to in file-like body in the event of a retry or 07:48:32 redirect. Typically this won't need to be set because urllib3 will 07:48:32 auto-populate the value when needed. 07:48:32 """ 07:48:32 parsed_url = parse_url(url) 07:48:32 destination_scheme = parsed_url.scheme 07:48:32 07:48:32 if headers is None: 07:48:32 headers = self.headers 07:48:32 07:48:32 if not isinstance(retries, Retry): 07:48:32 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 07:48:32 07:48:32 if release_conn is None: 07:48:32 release_conn = preload_content 07:48:32 07:48:32 # Check host 07:48:32 if assert_same_host and not self.is_same_host(url): 07:48:32 raise HostChangedError(self, url, retries) 07:48:32 07:48:32 # Ensure that the URL we're connecting to is properly encoded 07:48:32 if url.startswith("/"): 07:48:32 url = to_str(_encode_target(url)) 07:48:32 else: 07:48:32 url = to_str(parsed_url.url) 07:48:32 07:48:32 conn = None 07:48:32 07:48:32 # Track whether `conn` needs to be released before 07:48:32 # returning/raising/recursing. Update this variable if necessary, and 07:48:32 # leave `release_conn` constant throughout the function. That way, if 07:48:32 # the function recurses, the original value of `release_conn` will be 07:48:32 # passed down into the recursive call, and its value will be respected. 07:48:32 # 07:48:32 # See issue #651 [1] for details. 07:48:32 # 07:48:32 # [1] 07:48:32 release_this_conn = release_conn 07:48:32 07:48:32 http_tunnel_required = connection_requires_http_tunnel( 07:48:32 self.proxy, self.proxy_config, destination_scheme 07:48:32 ) 07:48:32 07:48:32 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 07:48:32 # have to copy the headers dict so we can safely change it without those 07:48:32 # changes being reflected in anyone else's copy. 07:48:32 if not http_tunnel_required: 07:48:32 headers = headers.copy() # type: ignore[attr-defined] 07:48:32 headers.update(self.proxy_headers) # type: ignore[union-attr] 07:48:32 07:48:32 # Must keep the exception bound to a separate variable or else Python 3 07:48:32 # complains about UnboundLocalError. 07:48:32 err = None 07:48:32 07:48:32 # Keep track of whether we cleanly exited the except block. This 07:48:32 # ensures we do proper cleanup in finally. 07:48:32 clean_exit = False 07:48:32 07:48:32 # Rewind body position, if needed. Record current position 07:48:32 # for future rewinds in the event of a redirect/retry. 07:48:32 body_pos = set_file_position(body, body_pos) 07:48:32 07:48:32 try: 07:48:32 # Request a connection from the queue. 07:48:32 timeout_obj = self._get_timeout(timeout) 07:48:32 conn = self._get_conn(timeout=pool_timeout) 07:48:32 07:48:32 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 07:48:32 07:48:32 # Is this a closed/new connection that requires CONNECT tunnelling? 07:48:32 if self.proxy is not None and http_tunnel_required and conn.is_closed: 07:48:32 try: 07:48:32 self._prepare_proxy(conn) 07:48:32 except (BaseSSLError, OSError, SocketTimeout) as e: 07:48:32 self._raise_timeout( 07:48:32 err=e, url=self.proxy.url, timeout_value=conn.timeout 07:48:32 ) 07:48:32 raise 07:48:32 07:48:32 # If we're going to release the connection in ``finally:``, then 07:48:32 # the response doesn't need to know about the connection. Otherwise 07:48:32 # it will also try to release it and we'll have a double-release 07:48:32 # mess. 07:48:32 response_conn = conn if not release_conn else None 07:48:32 07:48:32 # Make the request on the HTTPConnection object 07:48:32 > response = self._make_request( 07:48:32 conn, 07:48:32 method, 07:48:32 url, 07:48:32 timeout=timeout_obj, 07:48:32 body=body, 07:48:32 headers=headers, 07:48:32 chunked=chunked, 07:48:32 retries=retries, 07:48:32 response_conn=response_conn, 07:48:32 preload_content=preload_content, 07:48:32 decode_content=decode_content, 07:48:32 **response_kw, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 07:48:32 conn.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:441: in request 07:48:32 self.endheaders() 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289: in endheaders 07:48:32 self._send_output(message_body, encode_chunked=encode_chunked) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048: in _send_output 07:48:32 self.send(msg) 07:48:32 /opt/pyenv/versions/3.11.7/lib/python3.11/http/client.py:986: in send 07:48:32 self.connect() 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 07:48:32 self.sock = self._new_conn() 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def _new_conn(self) -> socket.socket: 07:48:32 """Establish a socket connection and set nodelay settings on it. 07:48:32 07:48:32 :return: New socket connection. 07:48:32 """ 07:48:32 try: 07:48:32 sock = connection.create_connection( 07:48:32 (self._dns_host, self.port), 07:48:32 self.timeout, 07:48:32 source_address=self.source_address, 07:48:32 socket_options=self.socket_options, 07:48:32 ) 07:48:32 except socket.gaierror as e: 07:48:32 raise NameResolutionError(self.host, self, e) from e 07:48:32 except SocketTimeout as e: 07:48:32 raise ConnectTimeoutError( 07:48:32 self, 07:48:32 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 07:48:32 ) from e 07:48:32 07:48:32 except OSError as e: 07:48:32 > raise NewConnectionError( 07:48:32 self, f"Failed to establish a new connection: {e}" 07:48:32 ) from e 07:48:32 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 07:48:32 07:48:32 The above exception was the direct cause of the following exception: 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 > resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:667: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 07:48:32 retries = retries.increment( 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 07:48:32 method = 'GET' 07:48:32 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRA01/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=XPDR1-NETWORK1-713:720?content=nonconfig' 07:48:32 response = None 07:48:32 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 07:48:32 _pool = 07:48:32 _stacktrace = 07:48:32 07:48:32 def increment( 07:48:32 self, 07:48:32 method: str | None = None, 07:48:32 url: str | None = None, 07:48:32 response: BaseHTTPResponse | None = None, 07:48:32 error: Exception | None = None, 07:48:32 _pool: ConnectionPool | None = None, 07:48:32 _stacktrace: TracebackType | None = None, 07:48:32 ) -> Self: 07:48:32 """Return a new Retry object with incremented retry counters. 07:48:32 07:48:32 :param response: A response object, or None, if the server did not 07:48:32 return a response. 07:48:32 :type response: :class:`~urllib3.response.BaseHTTPResponse` 07:48:32 :param Exception error: An error encountered during the request, or 07:48:32 None if the response was received successfully. 07:48:32 07:48:32 :return: A new ``Retry`` object. 07:48:32 """ 07:48:32 if self.total is False and error: 07:48:32 # Disabled, indicate to re-raise the error. 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 07:48:32 total = self.total 07:48:32 if total is not None: 07:48:32 total -= 1 07:48:32 07:48:32 connect = self.connect 07:48:32 read = self.read 07:48:32 redirect = self.redirect 07:48:32 status_count = self.status 07:48:32 other = self.other 07:48:32 cause = "unknown" 07:48:32 status = None 07:48:32 redirect_location = None 07:48:32 07:48:32 if error and self._is_connection_error(error): 07:48:32 # Connect retry? 07:48:32 if connect is False: 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif connect is not None: 07:48:32 connect -= 1 07:48:32 07:48:32 elif error and self._is_read_error(error): 07:48:32 # Read retry? 07:48:32 if read is False or method is None or not self._is_method_retryable(method): 07:48:32 raise reraise(type(error), error, _stacktrace) 07:48:32 elif read is not None: 07:48:32 read -= 1 07:48:32 07:48:32 elif error: 07:48:32 # Other retry? 07:48:32 if other is not None: 07:48:32 other -= 1 07:48:32 07:48:32 elif response and response.get_redirect_location(): 07:48:32 # Redirect retry? 07:48:32 if redirect is not None: 07:48:32 redirect -= 1 07:48:32 cause = "too many redirects" 07:48:32 response_redirect_location = response.get_redirect_location() 07:48:32 if response_redirect_location: 07:48:32 redirect_location = response_redirect_location 07:48:32 status = response.status 07:48:32 07:48:32 else: 07:48:32 # Incrementing because of a server error like a 500 in 07:48:32 # status_forcelist and the given method is in the allowed_methods 07:48:32 cause = ResponseError.GENERIC_ERROR 07:48:32 if response and response.status: 07:48:32 if status_count is not None: 07:48:32 status_count -= 1 07:48:32 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 07:48:32 status = response.status 07:48:32 07:48:32 history = self.history + ( 07:48:32 RequestHistory(method, url, error, status, redirect_location), 07:48:32 ) 07:48:32 07:48:32 new_retry = self.new( 07:48:32 total=total, 07:48:32 connect=connect, 07:48:32 read=read, 07:48:32 redirect=redirect, 07:48:32 status=status_count, 07:48:32 other=other, 07:48:32 history=history, 07:48:32 ) 07:48:32 07:48:32 if new_retry.is_exhausted(): 07:48:32 reason = error or ResponseError(cause) 07:48:32 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 07:48:32 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/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=XPDR1-NETWORK1-713:720?content=nonconfig (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 07:48:32 07:48:32 During handling of the above exception, another exception occurred: 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_09_service_path_create_xpdr_check(self): 07:48:32 > response = test_utils.check_node_attribute_request("XPDRA01", "interface", "XPDR1-NETWORK1-713:720") 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:156: 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 transportpce_tests/common/test_utils.py:401: in check_node_attribute_request 07:48:32 response = get_request(url[RESTCONF_VERSION].format('{}', node, attribute, attribute_value)) 07:48:32 transportpce_tests/common/test_utils.py:116: in get_request 07:48:32 return requests.request( 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 07:48:32 return session.request(method=method, url=url, **kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 07:48:32 resp = self.send(prep, **send_kwargs) 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 07:48:32 r = adapter.send(request, **kwargs) 07:48:32 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:48:32 07:48:32 self = 07:48:32 request = , stream = False 07:48:32 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 07:48:32 proxies = OrderedDict() 07:48:32 07:48:32 def send( 07:48:32 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 07:48:32 ): 07:48:32 """Sends PreparedRequest object. Returns Response object. 07:48:32 07:48:32 :param request: The :class:`PreparedRequest ` being sent. 07:48:32 :param stream: (optional) Whether to stream the request content. 07:48:32 :param timeout: (optional) How long to wait for the server to send 07:48:32 data before giving up, as a float, or a :ref:`(connect timeout, 07:48:32 read timeout) ` tuple. 07:48:32 :type timeout: float or tuple or urllib3 Timeout object 07:48:32 :param verify: (optional) Either a boolean, in which case it controls whether 07:48:32 we verify the server's TLS certificate, or a string, in which case it 07:48:32 must be a path to a CA bundle to use 07:48:32 :param cert: (optional) Any user-provided SSL certificate to be trusted. 07:48:32 :param proxies: (optional) The proxies dictionary to apply to the request. 07:48:32 :rtype: requests.Response 07:48:32 """ 07:48:32 07:48:32 try: 07:48:32 conn = self.get_connection_with_tls_context( 07:48:32 request, verify, proxies=proxies, cert=cert 07:48:32 ) 07:48:32 except LocationValueError as e: 07:48:32 raise InvalidURL(e, request=request) 07:48:32 07:48:32 self.cert_verify(conn, request.url, verify, cert) 07:48:32 url = self.request_url(request, proxies) 07:48:32 self.add_headers( 07:48:32 request, 07:48:32 stream=stream, 07:48:32 timeout=timeout, 07:48:32 verify=verify, 07:48:32 cert=cert, 07:48:32 proxies=proxies, 07:48:32 ) 07:48:32 07:48:32 chunked = not (request.body is None or "Content-Length" in request.headers) 07:48:32 07:48:32 if isinstance(timeout, tuple): 07:48:32 try: 07:48:32 connect, read = timeout 07:48:32 timeout = TimeoutSauce(connect=connect, read=read) 07:48:32 except ValueError: 07:48:32 raise ValueError( 07:48:32 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 07:48:32 f"or a single float to set both timeouts to the same value." 07:48:32 ) 07:48:32 elif isinstance(timeout, TimeoutSauce): 07:48:32 pass 07:48:32 else: 07:48:32 timeout = TimeoutSauce(connect=timeout, read=timeout) 07:48:32 07:48:32 try: 07:48:32 resp = conn.urlopen( 07:48:32 method=request.method, 07:48:32 url=url, 07:48:32 body=request.body, 07:48:32 headers=request.headers, 07:48:32 redirect=False, 07:48:32 assert_same_host=False, 07:48:32 preload_content=False, 07:48:32 decode_content=False, 07:48:32 retries=self.max_retries, 07:48:32 timeout=timeout, 07:48:32 chunked=chunked, 07:48:32 ) 07:48:32 07:48:32 except (ProtocolError, OSError) as err: 07:48:32 raise ConnectionError(err, request=request) 07:48:32 07:48:32 except MaxRetryError as e: 07:48:32 if isinstance(e.reason, ConnectTimeoutError): 07:48:32 # TODO: Remove this in 3.0.0: see #2811 07:48:32 if not isinstance(e.reason, NewConnectionError): 07:48:32 raise ConnectTimeout(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, ResponseError): 07:48:32 raise RetryError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _ProxyError): 07:48:32 raise ProxyError(e, request=request) 07:48:32 07:48:32 if isinstance(e.reason, _SSLError): 07:48:32 # This branch is for urllib3 v1.22 and later. 07:48:32 raise SSLError(e, request=request) 07:48:32 07:48:32 > raise ConnectionError(e, request=request) 07:48:32 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/yang-ext:mount/org-openroadm-device:org-openroadm-device/interface=XPDR1-NETWORK1-713:720?content=nonconfig (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 07:48:32 07:48:32 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_09_service_path_create_xpdr_check 07:48:32 ______ TransportPCERendererTesting.test_10_service_path_create_xpdr_check ______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_10_service_path_create_xpdr_check(self): 07:48:32 response = test_utils.check_node_attribute_request("XPDRA01", "interface", "XPDR1-NETWORK1-OTU") 07:48:32 > self.assertEqual(response['status_code'], requests.codes.ok) 07:48:32 E AssertionError: 503 != 200 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:175: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_10_service_path_create_xpdr_check 07:48:32 ______ TransportPCERendererTesting.test_11_service_path_create_xpdr_check ______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_11_service_path_create_xpdr_check(self): 07:48:32 response = test_utils.check_node_attribute_request("XPDRA01", "interface", "XPDR1-NETWORK1-ODU") 07:48:32 > self.assertEqual(response['status_code'], requests.codes.ok) 07:48:32 E AssertionError: 503 != 200 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:192: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_11_service_path_create_xpdr_check 07:48:32 ______ TransportPCERendererTesting.test_12_service_path_create_xpdr_check ______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_12_service_path_create_xpdr_check(self): 07:48:32 response = test_utils.check_node_attribute_request("XPDRA01", "interface", "XPDR1-CLIENT1-ETHERNET") 07:48:32 > self.assertEqual(response['status_code'], requests.codes.ok) 07:48:32 E AssertionError: 503 != 200 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:215: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_12_service_path_create_xpdr_check 07:48:32 ______ TransportPCERendererTesting.test_13_service_path_create_xpdr_check ______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_13_service_path_create_xpdr_check(self): 07:48:32 response = test_utils.check_node_attribute_request("XPDRA01", "circuit-packs", "1%2F0%2F1-PLUG-NET") 07:48:32 # FIXME: https://jira.opendaylight.org/browse/TRNSPRTPCE-591 07:48:32 > self.assertEqual(response['status_code'], requests.codes.ok) 07:48:32 E AssertionError: 400 != 200 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:236: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_13_service_path_create_xpdr_check 07:48:32 ___________ TransportPCERendererTesting.test_14_service_path_delete ____________ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_14_service_path_delete(self): 07:48:32 response = test_utils.transportpce_api_rpc_request( 07:48:32 'transportpce-device-renderer', 'service-path', 07:48:32 { 07:48:32 'service-name': 'service_test', 07:48:32 'wave-number': '7', 07:48:32 'modulation-format': 'dp-qpsk', 07:48:32 'operation': 'delete', 07:48:32 'nodes': [{'node-id': 'ROADMA01', 'src-tp': 'SRG1-PP7-TXRX', 'dest-tp': 'DEG1-TTP-TXRX'}, 07:48:32 {'node-id': 'XPDRA01', 'src-tp': 'XPDR1-CLIENT1', 'dest-tp': 'XPDR1-NETWORK1'}], 07:48:32 'center-freq': 195.8, 07:48:32 'nmc-width': 40, 07:48:32 'min-freq': 195.775, 07:48:32 'max-freq': 195.825, 07:48:32 'lower-spectral-slot-number': 713, 07:48:32 'higher-spectral-slot-number': 720 07:48:32 }) 07:48:32 self.assertEqual(response['status_code'], requests.codes.ok) 07:48:32 > self.assertDictEqual(response['output'], {'result': 'Request processed', 'success': True}) 07:48:32 E AssertionError: {'success': False, 'result': 'XPDRA01 is no[67 chars]ler'} != {'result': 'Request processed', 'success': True} 07:48:32 E + {'result': 'Request processed', 'success': True} 07:48:32 E - {'result': 'XPDRA01 is not mounted on the controller\n' 07:48:32 E - 'ROADMA01 is not mounted on the controller', 07:48:32 E - 'success': False} 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:257: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_14_service_path_delete 07:48:32 ______ TransportPCERendererTesting.test_15_service_path_delete_rdm_check _______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_15_service_path_delete_rdm_check(self): 07:48:32 response = test_utils.check_node_attribute_request("ROADMA01", "interface", "DEG1-TTP-TXRX-713:720") 07:48:32 > self.assertEqual(response['status_code'], requests.codes.conflict) 07:48:32 E AssertionError: 503 != 409 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:261: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_15_service_path_delete_rdm_check 07:48:32 ______ TransportPCERendererTesting.test_16_service_path_delete_rdm_check _______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_16_service_path_delete_rdm_check(self): 07:48:32 response = test_utils.check_node_attribute_request("ROADMA01", "interface", "SRG1-PP7-TXRX-713:720") 07:48:32 > self.assertEqual(response['status_code'], requests.codes.conflict) 07:48:32 E AssertionError: 503 != 409 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:265: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_16_service_path_delete_rdm_check 07:48:32 ______ TransportPCERendererTesting.test_17_service_path_delete_rdm_check _______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_17_service_path_delete_rdm_check(self): 07:48:32 response = test_utils.check_node_attribute_request( 07:48:32 "ROADMA01", "roadm-connections", "SRG1-PP7-TXRX-DEG1-TTP-TXRX-713:720") 07:48:32 > self.assertEqual(response['status_code'], requests.codes.conflict) 07:48:32 E AssertionError: 503 != 409 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:270: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_17_service_path_delete_rdm_check 07:48:32 ______ TransportPCERendererTesting.test_18_service_path_delete_xpdr_check ______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_18_service_path_delete_xpdr_check(self): 07:48:32 response = test_utils.check_node_attribute_request("XPDRA01", "interface", "XPDR1-NETWORK1-713:720") 07:48:32 > self.assertEqual(response['status_code'], requests.codes.conflict) 07:48:32 E AssertionError: 503 != 409 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:274: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_18_service_path_delete_xpdr_check 07:48:32 ______ TransportPCERendererTesting.test_19_service_path_delete_xpdr_check ______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_19_service_path_delete_xpdr_check(self): 07:48:32 response = test_utils.check_node_attribute_request("XPDRA01", "interface", "XPDR1-NETWORK1-OTU") 07:48:32 > self.assertEqual(response['status_code'], requests.codes.conflict) 07:48:32 E AssertionError: 503 != 409 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:278: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_19_service_path_delete_xpdr_check 07:48:32 ______ TransportPCERendererTesting.test_20_service_path_delete_xpdr_check ______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_20_service_path_delete_xpdr_check(self): 07:48:32 response = test_utils.check_node_attribute_request("XPDRA01", "interface", "XPDR1-NETWORK1-ODU") 07:48:32 > self.assertEqual(response['status_code'], requests.codes.conflict) 07:48:32 E AssertionError: 503 != 409 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:282: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_20_service_path_delete_xpdr_check 07:48:32 ______ TransportPCERendererTesting.test_21_service_path_delete_xpdr_check ______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_21_service_path_delete_xpdr_check(self): 07:48:32 response = test_utils.check_node_attribute_request("XPDRA01", "interface", "XPDR1-CLIENT1-ETHERNET") 07:48:32 > self.assertEqual(response['status_code'], requests.codes.conflict) 07:48:32 E AssertionError: 503 != 409 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:286: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_21_service_path_delete_xpdr_check 07:48:32 ______ TransportPCERendererTesting.test_22_service_path_delete_xpdr_check ______ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_22_service_path_delete_xpdr_check(self): 07:48:32 response = test_utils.check_node_attribute_request("XPDRA01", "circuit-packs", "1%2F0%2F1-PLUG-NET") 07:48:32 > self.assertEqual(response['status_code'], requests.codes.ok) 07:48:32 E AssertionError: 400 != 200 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:290: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_22_service_path_delete_xpdr_check 07:48:32 _________ TransportPCERendererTesting.test_23_rdm_device_disconnected __________ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_23_rdm_device_disconnected(self): 07:48:32 response = test_utils.unmount_device("ROADMA01") 07:48:32 > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) 07:48:32 E AssertionError: 409 not found in (200, 204) 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:295: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_23_rdm_device_disconnected 07:48:32 Searching for pattern 'onDeviceDisConnected:\ ROADMA01' in karaf.log... Pattern not found after 180 seconds! Node ROADMA01 still not deleted from tpce topology... 07:48:32 _________ TransportPCERendererTesting.test_24_xpdr_device_disconnected _________ 07:48:32 07:48:32 self = 07:48:32 07:48:32 def test_24_xpdr_device_disconnected(self): 07:48:32 response = test_utils.unmount_device("XPDRA01") 07:48:32 > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) 07:48:32 E AssertionError: 409 not found in (200, 204) 07:48:32 07:48:32 transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py:299: AssertionError 07:48:32 ----------------------------- Captured stdout call ----------------------------- 07:48:32 execution of test_24_xpdr_device_disconnected 07:48:32 Searching for pattern 'onDeviceDisConnected:\ XPDRA01' in karaf.log... Pattern not found after 180 seconds! Node XPDRA01 still not deleted from tpce topology... 07:48:32 --------------------------- Captured stdout teardown --------------------------- 07:48:32 all processes killed 07:48:32 =========================== short test summary info ============================ 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_03_rdm_portmapping 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_04_xpdr_portmapping 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_05_service_path_create 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_06_service_path_create_rdm_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_07_service_path_create_rdm_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_08_service_path_create_rdm_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_09_service_path_create_xpdr_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_10_service_path_create_xpdr_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_11_service_path_create_xpdr_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_12_service_path_create_xpdr_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_13_service_path_create_xpdr_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_14_service_path_delete 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_15_service_path_delete_rdm_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_16_service_path_delete_rdm_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_17_service_path_delete_rdm_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_18_service_path_delete_xpdr_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_19_service_path_delete_xpdr_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_20_service_path_delete_xpdr_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_21_service_path_delete_xpdr_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_22_service_path_delete_xpdr_check 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_23_rdm_device_disconnected 07:48:32 FAILED transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py::TransportPCERendererTesting::test_24_xpdr_device_disconnected 07:48:32 22 failed, 2 passed in 807.73s (0:13:27) 07:48:32 tests121: exit 1 (1990.60 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 pid=36016 07:48:33 ............................... [100%] 07:49:39 44 passed in 139.98s (0:02:19) 07:49:39 pytest -q transportpce_tests/2.2.1/test04_otn_topology.py 07:50:14 ............ [100%] 07:50:38 12 passed in 58.59s 07:50:38 pytest -q transportpce_tests/2.2.1/test05_flex_grid.py 07:51:05 ................ [100%] 07:52:33 16 passed in 115.53s (0:01:55) 07:52:33 pytest -q transportpce_tests/2.2.1/test06_renderer_service_path_nominal.py 07:53:02 ............................... [100%] 07:53:08 31 passed in 34.69s 07:53:08 pytest -q transportpce_tests/2.2.1/test07_otn_renderer.py 07:53:45 .......................... [100%] 07:54:40 26 passed in 91.90s (0:01:31) 07:54:41 pytest -q transportpce_tests/2.2.1/test08_otn_sh_renderer.py 07:55:15 ...................... [100%] 07:56:19 22 passed in 98.44s (0:01:38) 07:56:19 pytest -q transportpce_tests/2.2.1/test09_olm.py 07:56:59 ........................................ [100%] 07:59:21 40 passed in 181.46s (0:03:01) 07:59:21 pytest -q transportpce_tests/2.2.1/test11_otn_end2end.py 08:00:07 ........................................................................ [ 74%] 08:05:43 ......................... [100%] 08:10:38 97 passed in 675.40s (0:11:15) 08:10:38 pytest -q transportpce_tests/2.2.1/test12_end2end.py 08:11:17 ...................................................... [100%] 08:18:03 54 passed in 446.63s (0:07:26) 08:18:03 pytest -q transportpce_tests/2.2.1/test14_otn_switch_end2end.py 08:18:57 ........................................................................ [ 71%] 08:24:05 ............................. [100%] 08:29:14 101 passed in 670.48s (0:11:10) 08:29:14 pytest -q transportpce_tests/2.2.1/test15_otn_end2end_with_intermediate_switch.py 08:30:07 ........................................................................ [ 67%] 08:35:53 ................................... [100%] 08:39:14 107 passed in 599.36s (0:09:59) 08:39:14 tests121: FAIL ✖ in 33 minutes 16.63 seconds 08:39:14 tests221: OK ✔ in 54 minutes 8.12 seconds 08:39:14 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 08:39:22 tests_hybrid: freeze> python -m pip freeze --all 08:39:22 tests_hybrid: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 08:39:22 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid 08:39:22 using environment variables from ./karaf121.env 08:39:22 pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py 08:40:08 ................................................... [100%] 08:41:54 51 passed in 152.41s (0:02:32) 08:41:54 pytest -q transportpce_tests/hybrid/test02_B100G_end2end.py 08:42:35 ........................................................................ [ 66%] 08:46:56 ..................................... [100%] 08:49:02 109 passed in 427.47s (0:07:07) 08:49:02 pytest -q transportpce_tests/hybrid/test03_autonomous_reroute.py 08:49:49 ..................................................... [100%] 08:53:22 53 passed in 258.49s (0:04:18) 08:53:22 tests_hybrid: OK ✔ in 14 minutes 7.02 seconds 08:53:22 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 08:53:27 buildlighty: freeze> python -m pip freeze --all 08:53:27 buildlighty: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.3.2,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.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.1.0,urllib3==2.2.3,wheel==0.44.0 08:53:27 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh 08:53:27 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED 08:53:42 [ERROR] COMPILATION ERROR : 08:53:42 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[17,42] cannot find symbol 08:53:42 symbol: class YangModuleInfo 08:53:42 location: package org.opendaylight.yangtools.binding 08:53:42 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[21,30] cannot find symbol 08:53:42 symbol: class YangModuleInfo 08:53:42 location: class io.lighty.controllers.tpce.utils.TPCEUtils 08:53:42 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[343,30] cannot find symbol 08:53:42 symbol: class YangModuleInfo 08:53:42 location: class io.lighty.controllers.tpce.utils.TPCEUtils 08:53:42 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[350,23] cannot find symbol 08:53:42 symbol: class YangModuleInfo 08:53:42 location: class io.lighty.controllers.tpce.utils.TPCEUtils 08:53:42 [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: 08:53:42 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[17,42] cannot find symbol 08:53:42 [ERROR] symbol: class YangModuleInfo 08:53:42 [ERROR] location: package org.opendaylight.yangtools.binding 08:53:42 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[21,30] cannot find symbol 08:53:42 [ERROR] symbol: class YangModuleInfo 08:53:42 [ERROR] location: class io.lighty.controllers.tpce.utils.TPCEUtils 08:53:42 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[343,30] cannot find symbol 08:53:42 [ERROR] symbol: class YangModuleInfo 08:53:42 [ERROR] location: class io.lighty.controllers.tpce.utils.TPCEUtils 08:53:42 [ERROR] /w/workspace/transportpce-tox-verify-transportpce-master/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java:[350,23] cannot find symbol 08:53:42 [ERROR] symbol: class YangModuleInfo 08:53:42 [ERROR] location: class io.lighty.controllers.tpce.utils.TPCEUtils 08:53:42 [ERROR] -> [Help 1] 08:53:42 [ERROR] 08:53:42 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 08:53:42 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 08:53:42 [ERROR] 08:53:42 [ERROR] For more information about the errors and possible solutions, please read the following articles: 08:53:42 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 08:53:42 unzip: cannot find or open target/tpce-bin.zip, target/tpce-bin.zip.zip or target/tpce-bin.zip.ZIP. 08:53:42 buildlighty: exit 9 (14.90 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh pid=65744 08:53:42 buildlighty: command failed but is marked ignore outcome so handling it as success 08:53:42 buildcontroller: OK (105.89=setup[7.26]+cmd[98.64] seconds) 08:53:42 testsPCE: OK (313.53=setup[71.68]+cmd[241.85] seconds) 08:53:42 sims: OK (9.84=setup[6.85]+cmd[2.99] seconds) 08:53:42 build_karaf_tests121: OK (55.69=setup[6.78]+cmd[48.90] seconds) 08:53:42 tests121: FAIL code 1 (1996.63=setup[6.03]+cmd[1990.60] seconds) 08:53:42 build_karaf_tests221: OK (55.62=setup[6.80]+cmd[48.83] seconds) 08:53:42 tests_tapi: OK (816.24=setup[5.89]+cmd[810.35] seconds) 08:53:42 tests221: OK (3248.12=setup[7.15]+cmd[3240.97] seconds) 08:53:42 build_karaf_tests71: OK (58.63=setup[19.00]+cmd[39.63] seconds) 08:53:42 tests71: FAIL code 1 (1231.93=setup[12.68]+cmd[1219.25] seconds) 08:53:42 build_karaf_tests_hybrid: OK (58.81=setup[5.98]+cmd[52.83] seconds) 08:53:42 tests_hybrid: OK (847.02=setup[7.93]+cmd[839.09] seconds) 08:53:42 buildlighty: OK (21.09=setup[6.19]+cmd[14.90] seconds) 08:53:42 docs: OK (30.10=setup[27.98]+cmd[2.13] seconds) 08:53:42 docs-linkcheck: OK (95.90=setup[28.73]+cmd[67.16] seconds) 08:53:42 checkbashisms: OK (3.12=setup[2.14]+cmd[0.01,0.06,0.90] seconds) 08:53:42 pre-commit: OK (42.97=setup[3.05]+cmd[0.00,0.00,33.09,6.81] seconds) 08:53:42 pylint: OK (26.67=setup[3.80]+cmd[22.87] seconds) 08:53:42 evaluation failed :( (6326.06 seconds) 08:53:42 + tox_status=255 08:53:42 + echo '---> Completed tox runs' 08:53:42 ---> Completed tox runs 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/build_karaf_tests121/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=build_karaf_tests121 08:53:42 + cp -r .tox/build_karaf_tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests121 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/build_karaf_tests221/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=build_karaf_tests221 08:53:42 + cp -r .tox/build_karaf_tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests221 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/build_karaf_tests71/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=build_karaf_tests71 08:53:42 + cp -r .tox/build_karaf_tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests71 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/build_karaf_tests_hybrid/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=build_karaf_tests_hybrid 08:53:42 + cp -r .tox/build_karaf_tests_hybrid/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests_hybrid 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/buildcontroller/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=buildcontroller 08:53:42 + cp -r .tox/buildcontroller/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildcontroller 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/buildlighty/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=buildlighty 08:53:42 + cp -r .tox/buildlighty/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildlighty 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/checkbashisms/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=checkbashisms 08:53:42 + cp -r .tox/checkbashisms/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/checkbashisms 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/docs-linkcheck/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=docs-linkcheck 08:53:42 + cp -r .tox/docs-linkcheck/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs-linkcheck 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/docs/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=docs 08:53:42 + cp -r .tox/docs/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/pre-commit/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=pre-commit 08:53:42 + cp -r .tox/pre-commit/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pre-commit 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/pylint/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=pylint 08:53:42 + cp -r .tox/pylint/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pylint 08:53:42 + for i in .tox/*/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 ++ echo .tox/sims/log 08:53:42 + tox_env=sims 08:53:42 + cp -r .tox/sims/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/sims 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/tests121/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=tests121 08:53:42 + cp -r .tox/tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests121 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/tests221/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=tests221 08:53:42 + cp -r .tox/tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests221 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/tests71/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=tests71 08:53:42 + cp -r .tox/tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests71 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/testsPCE/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=testsPCE 08:53:42 + cp -r .tox/testsPCE/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/testsPCE 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/tests_hybrid/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=tests_hybrid 08:53:42 + cp -r .tox/tests_hybrid/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_hybrid 08:53:42 + for i in .tox/*/log 08:53:42 ++ echo .tox/tests_tapi/log 08:53:42 ++ awk -F/ '{print $2}' 08:53:42 + tox_env=tests_tapi 08:53:42 + cp -r .tox/tests_tapi/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_tapi 08:53:42 + DOC_DIR=docs/_build/html 08:53:42 + [[ -d docs/_build/html ]] 08:53:42 + echo '---> Archiving generated docs' 08:53:42 ---> Archiving generated docs 08:53:42 + mv docs/_build/html /w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 08:53:42 + echo '---> tox-run.sh ends' 08:53:42 ---> tox-run.sh ends 08:53:42 + test 255 -eq 0 08:53:42 + exit 255 08:53:42 ++ '[' 1 = 1 ']' 08:53:42 ++ '[' -x /usr/bin/clear_console ']' 08:53:42 ++ /usr/bin/clear_console -q 08:53:42 Build step 'Execute shell' marked build as failure 08:53:42 $ ssh-agent -k 08:53:42 unset SSH_AUTH_SOCK; 08:53:42 unset SSH_AGENT_PID; 08:53:42 echo Agent pid 13896 killed; 08:53:42 [ssh-agent] Stopped. 08:53:42 [PostBuildScript] - [INFO] Executing post build scripts. 08:53:42 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins11009155743609662365.sh 08:53:42 ---> sysstat.sh 08:53:43 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins6632433388728924456.sh 08:53:43 ---> package-listing.sh 08:53:43 ++ facter osfamily 08:53:43 ++ tr '[:upper:]' '[:lower:]' 08:53:43 + OS_FAMILY=debian 08:53:43 + workspace=/w/workspace/transportpce-tox-verify-transportpce-master 08:53:43 + START_PACKAGES=/tmp/packages_start.txt 08:53:43 + END_PACKAGES=/tmp/packages_end.txt 08:53:43 + DIFF_PACKAGES=/tmp/packages_diff.txt 08:53:43 + PACKAGES=/tmp/packages_start.txt 08:53:43 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 08:53:43 + PACKAGES=/tmp/packages_end.txt 08:53:43 + case "${OS_FAMILY}" in 08:53:43 + dpkg -l 08:53:43 + grep '^ii' 08:53:43 + '[' -f /tmp/packages_start.txt ']' 08:53:43 + '[' -f /tmp/packages_end.txt ']' 08:53:43 + diff /tmp/packages_start.txt /tmp/packages_end.txt 08:53:43 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 08:53:43 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 08:53:43 + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 08:53:43 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins7047215653324463313.sh 08:53:43 ---> capture-instance-metadata.sh 08:53:43 Setup pyenv: 08:53:43 system 08:53:43 3.8.13 08:53:43 3.9.13 08:53:43 3.10.13 08:53:43 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 08:53:43 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-MWHu from file:/tmp/.os_lf_venv 08:53:44 lf-activate-venv(): INFO: Installing: lftools 08:53:55 lf-activate-venv(): INFO: Adding /tmp/venv-MWHu/bin to PATH 08:53:55 INFO: Running in OpenStack, capturing instance metadata 08:53:55 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins5820017462805605179.sh 08:53:56 provisioning config files... 08:53:56 Could not find credentials [logs] for transportpce-tox-verify-transportpce-master #2002 08:53:56 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/transportpce-tox-verify-transportpce-master@tmp/config16631121730303271863tmp 08:53:56 Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] 08:53:56 Run condition [Regular expression match] enabling perform for step [Provide Configuration files] 08:53:56 provisioning config files... 08:53:56 copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials 08:53:56 [EnvInject] - Injecting environment variables from a build step. 08:53:56 [EnvInject] - Injecting as environment variables the properties content 08:53:56 SERVER_ID=logs 08:53:56 08:53:56 [EnvInject] - Variables injected successfully. 08:53:56 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins421238764440890324.sh 08:53:56 ---> create-netrc.sh 08:53:56 WARN: Log server credential not found. 08:53:56 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins9570457144471835880.sh 08:53:56 ---> python-tools-install.sh 08:53:56 Setup pyenv: 08:53:56 system 08:53:56 3.8.13 08:53:56 3.9.13 08:53:56 3.10.13 08:53:56 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 08:53:57 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-MWHu from file:/tmp/.os_lf_venv 08:53:57 lf-activate-venv(): INFO: Installing: lftools 08:54:06 lf-activate-venv(): INFO: Adding /tmp/venv-MWHu/bin to PATH 08:54:06 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins8824233518542630630.sh 08:54:06 ---> sudo-logs.sh 08:54:06 Archiving 'sudo' log.. 08:54:06 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins8161412613724578078.sh 08:54:06 ---> job-cost.sh 08:54:06 Setup pyenv: 08:54:06 system 08:54:06 3.8.13 08:54:06 3.9.13 08:54:06 3.10.13 08:54:06 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 08:54:06 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-MWHu from file:/tmp/.os_lf_venv 08:54:07 lf-activate-venv(): INFO: Installing: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 08:54:13 lf-activate-venv(): INFO: Adding /tmp/venv-MWHu/bin to PATH 08:54:13 INFO: No Stack... 08:54:13 INFO: Retrieving Pricing Info for: v3-standard-4 08:54:13 INFO: Archiving Costs 08:54:13 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins13374449067348239989.sh 08:54:13 ---> logs-deploy.sh 08:54:13 Setup pyenv: 08:54:13 system 08:54:13 3.8.13 08:54:13 3.9.13 08:54:13 3.10.13 08:54:13 * 3.11.7 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 08:54:14 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-MWHu from file:/tmp/.os_lf_venv 08:54:14 lf-activate-venv(): INFO: Installing: lftools 08:54:22 lf-activate-venv(): INFO: Adding /tmp/venv-MWHu/bin to PATH 08:54:22 WARNING: Nexus logging server not set 08:54:22 INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/transportpce-tox-verify-transportpce-master/2002/ 08:54:22 INFO: archiving logs to S3 08:54:24 ---> uname -a: 08:54:24 Linux prd-ubuntu2004-docker-4c-16g-23715 5.4.0-190-generic #210-Ubuntu SMP Fri Jul 5 17:03:38 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux 08:54:24 08:54:24 08:54:24 ---> lscpu: 08:54:24 Architecture: x86_64 08:54:24 CPU op-mode(s): 32-bit, 64-bit 08:54:24 Byte Order: Little Endian 08:54:24 Address sizes: 40 bits physical, 48 bits virtual 08:54:24 CPU(s): 4 08:54:24 On-line CPU(s) list: 0-3 08:54:24 Thread(s) per core: 1 08:54:24 Core(s) per socket: 1 08:54:24 Socket(s): 4 08:54:24 NUMA node(s): 1 08:54:24 Vendor ID: AuthenticAMD 08:54:24 CPU family: 23 08:54:24 Model: 49 08:54:24 Model name: AMD EPYC-Rome Processor 08:54:24 Stepping: 0 08:54:24 CPU MHz: 2799.996 08:54:24 BogoMIPS: 5599.99 08:54:24 Virtualization: AMD-V 08:54:24 Hypervisor vendor: KVM 08:54:24 Virtualization type: full 08:54:24 L1d cache: 128 KiB 08:54:24 L1i cache: 128 KiB 08:54:24 L2 cache: 2 MiB 08:54:24 L3 cache: 64 MiB 08:54:24 NUMA node0 CPU(s): 0-3 08:54:24 Vulnerability Gather data sampling: Not affected 08:54:24 Vulnerability Itlb multihit: Not affected 08:54:24 Vulnerability L1tf: Not affected 08:54:24 Vulnerability Mds: Not affected 08:54:24 Vulnerability Meltdown: Not affected 08:54:24 Vulnerability Mmio stale data: Not affected 08:54:24 Vulnerability Retbleed: Vulnerable 08:54:24 Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp 08:54:24 Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 08:54:24 Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 08:54:24 Vulnerability Srbds: Not affected 08:54:24 Vulnerability Tsx async abort: Not affected 08:54:24 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 08:54:24 08:54:24 08:54:24 ---> nproc: 08:54:24 4 08:54:24 08:54:24 08:54:24 ---> df -h: 08:54:24 Filesystem Size Used Avail Use% Mounted on 08:54:24 udev 7.8G 0 7.8G 0% /dev 08:54:24 tmpfs 1.6G 1.1M 1.6G 1% /run 08:54:24 /dev/vda1 78G 17G 62G 21% / 08:54:24 tmpfs 7.9G 0 7.9G 0% /dev/shm 08:54:24 tmpfs 5.0M 0 5.0M 0% /run/lock 08:54:24 tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup 08:54:24 /dev/loop0 62M 62M 0 100% /snap/core20/1405 08:54:24 /dev/loop2 68M 68M 0 100% /snap/lxd/22753 08:54:24 /dev/vda15 105M 6.1M 99M 6% /boot/efi 08:54:24 tmpfs 1.6G 0 1.6G 0% /run/user/1001 08:54:24 /dev/loop3 39M 39M 0 100% /snap/snapd/21759 08:54:24 /dev/loop4 64M 64M 0 100% /snap/core20/2379 08:54:24 /dev/loop5 92M 92M 0 100% /snap/lxd/29619 08:54:24 08:54:24 08:54:24 ---> free -m: 08:54:24 total used free shared buff/cache available 08:54:24 Mem: 15997 681 6182 0 9133 14976 08:54:24 Swap: 1023 0 1023 08:54:24 08:54:24 08:54:24 ---> ip addr: 08:54:24 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 08:54:24 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 08:54:24 inet 127.0.0.1/8 scope host lo 08:54:24 valid_lft forever preferred_lft forever 08:54:24 inet6 ::1/128 scope host 08:54:24 valid_lft forever preferred_lft forever 08:54:24 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 08:54:24 link/ether fa:16:3e:7a:e8:c0 brd ff:ff:ff:ff:ff:ff 08:54:24 inet 10.30.170.125/23 brd 10.30.171.255 scope global dynamic ens3 08:54:24 valid_lft 79903sec preferred_lft 79903sec 08:54:24 inet6 fe80::f816:3eff:fe7a:e8c0/64 scope link 08:54:24 valid_lft forever preferred_lft forever 08:54:24 3: docker0: mtu 1458 qdisc noqueue state DOWN group default 08:54:24 link/ether 02:42:da:ff:54:34 brd ff:ff:ff:ff:ff:ff 08:54:24 inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 08:54:24 valid_lft forever preferred_lft forever 08:54:24 08:54:24 08:54:24 ---> sar -b -r -n DEV: 08:54:24 Linux 5.4.0-190-generic (prd-ubuntu2004-docker-4c-16g-23715) 09/18/24 _x86_64_ (4 CPU) 08:54:24 08:54:24 07:06:09 LINUX RESTART (4 CPU) 08:54:24 08:54:24 07:07:02 tps rtps wtps dtps bread/s bwrtn/s bdscd/s 08:54:24 07:08:01 134.62 61.26 73.36 0.00 1782.48 7715.18 0.00 08:54:24 07:09:01 226.12 36.90 189.22 0.00 2534.22 28926.89 0.00 08:54:24 07:10:01 102.15 6.15 96.00 0.00 274.62 41214.46 0.00 08:54:24 07:11:01 159.75 0.42 159.33 0.00 34.92 135328.76 0.00 08:54:24 07:12:01 170.20 16.53 153.67 0.00 4950.51 95608.60 0.00 08:54:24 07:13:01 179.66 1.18 178.47 0.00 50.52 6126.89 0.00 08:54:24 07:14:01 81.30 2.95 78.35 0.00 226.90 1620.93 0.00 08:54:24 07:15:01 98.45 0.15 98.30 0.00 26.00 1639.73 0.00 08:54:24 07:16:01 164.95 0.30 164.65 0.00 18.26 6509.56 0.00 08:54:24 07:17:01 122.96 0.05 122.91 0.00 1.07 6532.24 0.00 08:54:24 07:18:01 4.15 0.00 4.15 0.00 0.00 85.19 0.00 08:54:24 07:19:01 3.22 0.02 3.20 0.00 0.13 54.52 0.00 08:54:24 07:20:01 16.76 0.00 16.76 0.00 0.00 602.03 0.00 08:54:24 07:21:01 147.88 0.02 147.86 0.00 0.13 2334.01 0.00 08:54:24 07:22:01 4.32 0.73 3.58 0.00 14.40 86.92 0.00 08:54:24 07:23:01 4.10 0.00 4.10 0.00 0.00 67.06 0.00 08:54:24 07:24:01 16.46 0.00 16.46 0.00 0.00 277.55 0.00 08:54:24 07:25:01 69.07 2.45 66.62 0.00 427.13 1868.22 0.00 08:54:24 07:26:01 54.39 0.00 54.39 0.00 0.00 8214.50 0.00 08:54:24 07:27:01 26.58 0.03 26.55 0.00 0.27 710.55 0.00 08:54:24 07:28:01 1.90 0.00 1.90 0.00 0.00 29.33 0.00 08:54:24 07:29:01 25.66 0.00 25.66 0.00 0.00 392.07 0.00 08:54:24 07:30:01 15.11 0.00 15.11 0.00 0.00 243.03 0.00 08:54:24 07:31:01 13.38 0.00 13.38 0.00 0.00 185.67 0.00 08:54:24 07:32:01 25.53 0.00 25.53 0.00 0.00 488.45 0.00 08:54:24 07:33:01 2.37 0.00 2.37 0.00 0.00 35.06 0.00 08:54:24 07:34:01 25.06 0.00 25.06 0.00 0.00 577.67 0.00 08:54:24 07:35:01 15.76 0.00 15.76 0.00 0.00 251.82 0.00 08:54:24 07:36:01 93.73 0.02 93.72 0.00 0.27 1301.65 0.00 08:54:24 07:37:01 26.39 0.02 26.37 0.00 0.40 394.54 0.00 08:54:24 07:38:01 1.42 0.00 1.42 0.00 0.00 19.60 0.00 08:54:24 07:39:01 78.64 0.00 78.64 0.00 0.00 1124.03 0.00 08:54:24 07:40:01 1.58 0.00 1.58 0.00 0.00 21.99 0.00 08:54:24 07:41:01 25.18 0.00 25.18 0.00 0.00 377.00 0.00 08:54:24 07:42:01 75.97 0.08 75.89 0.00 3.20 1085.90 0.00 08:54:24 07:43:01 2.60 0.00 2.60 0.00 0.00 35.99 0.00 08:54:24 07:44:01 16.70 0.00 16.70 0.00 0.00 261.96 0.00 08:54:24 07:45:01 2.48 0.00 2.48 0.00 0.00 31.33 0.00 08:54:24 07:46:01 86.52 0.03 86.49 0.00 0.27 3370.50 0.00 08:54:24 07:47:01 66.73 0.00 66.73 0.00 0.00 958.61 0.00 08:54:24 07:48:01 84.97 0.00 84.97 0.00 0.00 1179.14 0.00 08:54:24 07:49:02 3.55 0.00 3.55 0.00 0.00 79.45 0.00 08:54:24 07:50:01 55.06 0.00 55.06 0.00 0.00 777.36 0.00 08:54:24 07:51:01 44.35 0.00 44.35 0.00 0.00 645.33 0.00 08:54:24 07:52:01 46.26 0.00 46.26 0.00 0.00 616.56 0.00 08:54:24 07:53:01 71.37 0.00 71.37 0.00 0.00 986.90 0.00 08:54:24 07:54:01 60.54 0.02 60.52 0.00 0.13 878.25 0.00 08:54:24 07:55:01 17.51 0.00 17.51 0.00 0.00 291.82 0.00 08:54:24 07:56:01 56.97 0.00 56.97 0.00 0.00 764.81 0.00 08:54:24 07:57:01 60.94 0.00 60.94 0.00 0.00 872.39 0.00 08:54:24 07:58:01 2.07 0.00 2.07 0.00 0.00 47.06 0.00 08:54:24 07:59:01 2.47 0.00 2.47 0.00 0.00 57.86 0.00 08:54:24 08:00:01 55.34 0.00 55.34 0.00 0.00 800.67 0.00 08:54:24 08:01:01 19.76 0.00 19.76 0.00 0.00 281.95 0.00 08:54:24 08:02:01 2.05 0.00 2.05 0.00 0.00 35.33 0.00 08:54:24 08:03:01 1.80 0.00 1.80 0.00 0.00 34.13 0.00 08:54:24 08:04:01 2.12 0.00 2.12 0.00 0.00 41.73 0.00 08:54:24 08:05:01 2.40 0.00 2.40 0.00 0.00 58.26 0.00 08:54:24 08:06:01 1.52 0.00 1.52 0.00 0.00 27.06 0.00 08:54:24 08:07:01 2.13 0.00 2.13 0.00 0.00 36.13 0.00 08:54:24 08:08:01 1.75 0.00 1.75 0.00 0.00 40.26 0.00 08:54:24 08:09:01 1.58 0.00 1.58 0.00 0.00 23.46 0.00 08:54:24 08:10:01 1.47 0.00 1.47 0.00 0.00 19.33 0.00 08:54:24 08:11:01 25.95 0.00 25.95 0.00 0.00 395.40 0.00 08:54:24 08:12:01 61.64 0.00 61.64 0.00 0.00 838.93 0.00 08:54:24 08:13:01 3.50 0.00 3.50 0.00 0.00 75.45 0.00 08:54:24 08:14:01 2.08 0.00 2.08 0.00 0.00 46.26 0.00 08:54:24 08:15:01 2.02 0.00 2.02 0.00 0.00 50.52 0.00 08:54:24 08:16:01 1.65 0.00 1.65 0.00 0.00 33.73 0.00 08:54:24 08:17:01 2.90 0.00 2.90 0.00 0.00 69.06 0.00 08:54:24 08:18:01 2.68 0.00 2.68 0.00 0.00 70.79 0.00 08:54:24 08:19:01 85.47 0.00 85.47 0.00 0.00 1243.39 0.00 08:54:24 08:20:01 2.03 0.00 2.03 0.00 0.00 49.33 0.00 08:54:24 08:21:01 3.35 0.00 3.35 0.00 0.00 68.92 0.00 08:54:24 08:22:01 2.77 0.00 2.77 0.00 0.00 61.32 0.00 08:54:24 08:23:01 3.48 0.00 3.48 0.00 0.00 55.32 0.00 08:54:24 08:24:01 1.82 0.00 1.82 0.00 0.00 40.13 0.00 08:54:24 08:25:01 1.95 0.00 1.95 0.00 0.00 44.93 0.00 08:54:24 08:26:01 2.00 0.00 2.00 0.00 0.00 31.59 0.00 08:54:24 08:27:01 1.88 0.00 1.88 0.00 0.00 30.93 0.00 08:54:24 08:28:01 1.53 0.00 1.53 0.00 0.00 20.13 0.00 08:54:24 08:29:01 1.85 0.00 1.85 0.00 0.00 24.53 0.00 08:54:24 08:30:01 27.36 0.00 27.36 0.00 0.00 546.71 0.00 08:54:24 08:31:01 57.37 0.00 57.37 0.00 0.00 812.00 0.00 08:54:24 08:32:01 3.27 0.00 3.27 0.00 0.00 80.12 0.00 08:54:24 08:33:01 3.47 0.00 3.47 0.00 0.00 56.79 0.00 08:54:24 08:34:01 2.12 0.00 2.12 0.00 0.00 35.46 0.00 08:54:24 08:35:01 2.50 0.00 2.50 0.00 0.00 49.06 0.00 08:54:24 08:36:01 2.22 0.00 2.22 0.00 0.00 42.53 0.00 08:54:24 08:37:01 2.00 0.00 2.00 0.00 0.00 37.86 0.00 08:54:24 08:38:01 2.08 0.00 2.08 0.00 0.00 35.99 0.00 08:54:24 08:39:01 3.02 0.00 3.02 0.00 0.00 61.46 0.00 08:54:24 08:40:01 61.55 0.03 61.52 0.00 0.27 4279.20 0.00 08:54:24 08:41:01 62.91 0.02 62.89 0.00 0.13 5878.89 0.00 08:54:24 08:42:01 16.83 0.00 16.83 0.00 0.00 391.60 0.00 08:54:24 08:43:01 69.32 0.00 69.32 0.00 0.00 1205.87 0.00 08:54:24 08:44:01 2.45 0.00 2.45 0.00 0.00 46.53 0.00 08:54:24 08:45:01 1.85 0.00 1.85 0.00 0.00 35.73 0.00 08:54:24 08:46:01 1.68 0.00 1.68 0.00 0.00 30.00 0.00 08:54:24 08:47:01 1.95 0.00 1.95 0.00 0.00 37.06 0.00 08:54:24 08:48:01 1.48 0.00 1.48 0.00 0.00 41.45 0.00 08:54:24 08:49:01 2.17 0.00 2.17 0.00 0.00 44.53 0.00 08:54:24 08:50:01 61.96 0.00 61.96 0.00 0.00 925.05 0.00 08:54:24 08:51:01 3.17 0.00 3.17 0.00 0.00 169.71 0.00 08:54:24 08:52:01 3.08 0.00 3.08 0.00 0.00 93.32 0.00 08:54:24 08:53:01 4.30 0.00 4.30 0.00 0.00 93.18 0.00 08:54:24 08:54:01 40.99 10.08 30.91 0.00 371.54 3171.87 0.00 08:54:24 Average: 33.99 1.29 32.70 0.00 99.92 3614.57 0.00 08:54:24 08:54:24 07:07:02 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 08:54:24 07:08:01 13250832 15390408 584932 3.57 73376 2258184 1322064 7.59 853500 1992144 227516 08:54:24 07:09:01 10567060 14302992 1654468 10.10 134476 3673544 2599352 14.91 2110844 3277196 1007268 08:54:24 07:10:01 9104140 13795508 2161704 13.20 152344 4569396 2650936 15.21 2924376 3884020 731272 08:54:24 07:11:01 6485196 14373696 1581288 9.65 195452 7585192 2418076 13.87 3214300 6072988 611184 08:54:24 07:12:01 2860468 12313768 3629744 22.16 225076 9056768 4964876 28.48 5838620 6989456 93392 08:54:24 07:13:01 175504 9408004 6534036 39.89 226412 8841092 7926972 45.48 8706516 6799008 216 08:54:24 07:14:01 823632 9438200 6502904 39.70 223392 8234572 7978228 45.77 8623332 6240256 128 08:54:24 07:15:01 5809036 14385348 1558444 9.51 226168 8193972 2649816 15.20 3699924 6198292 964 08:54:24 07:16:01 2636356 11457428 4484888 27.38 236748 8420448 6345852 36.41 6682816 6372476 143720 08:54:24 07:17:01 794896 9620880 6320400 38.58 240684 8421172 7470880 42.86 8522064 6365140 348 08:54:24 07:18:01 524920 9351580 6589508 40.23 240712 8421832 7585692 43.52 8790396 6364944 112 08:54:24 07:19:01 515244 9342132 6598880 40.28 240740 8422004 7585692 43.52 8799692 6365084 160 08:54:24 07:20:01 5702492 14529556 1414380 8.63 240820 8422204 2305776 13.23 3648804 6350240 780 08:54:24 07:21:01 1191288 10023056 5918332 36.13 244484 8423176 7258284 41.64 8157532 6336644 232 08:54:24 07:22:01 592748 9425712 6515244 39.77 244556 8424204 7535596 43.23 8750432 6336932 116 08:54:24 07:23:01 547280 9380488 6560456 40.05 244580 8424408 7551620 43.33 8796668 6337056 144 08:54:24 07:24:01 2071100 10904948 5036676 30.75 244616 8424912 5843384 33.53 7288052 6326772 816 08:54:24 07:25:01 2901816 11297616 4643736 28.35 251624 7982728 5882960 33.75 6886436 5904576 223388 08:54:24 07:26:01 2785992 11185912 4755444 29.03 252188 7986296 6014864 34.51 7008864 5897644 48 08:54:24 07:27:01 2943992 11344136 4597336 28.06 252448 7986356 5894004 33.82 6865116 5883784 68 08:54:24 07:28:01 2644164 11044488 4897008 29.89 252460 7986520 5964196 34.22 7164212 5883876 0 08:54:24 07:29:01 2581552 10982116 4959404 30.27 252592 7986620 6023828 34.56 7229524 5881692 80 08:54:24 07:30:01 2670224 11070744 4870792 29.73 252612 7986520 5929460 34.02 7140728 5881588 348 08:54:24 07:31:01 2601648 11002360 4939172 30.15 252780 7986540 5980044 34.31 7208620 5881608 104 08:54:24 07:32:01 2339632 10740576 5200888 31.75 252976 7986572 6106652 35.04 7472284 5881640 156 08:54:24 07:33:01 2338712 10739672 5201760 31.75 252984 7986580 6106652 35.04 7472024 5881640 80 08:54:24 07:34:01 2363888 10765016 5176392 31.60 253140 7986584 6066444 34.80 7448428 5881644 104 08:54:24 07:35:01 2764300 11165376 4776012 29.16 253168 7986488 5668708 32.52 7047028 5881532 288 08:54:24 07:36:01 4063836 12466988 3475544 21.22 254596 7987064 4421896 25.37 5755512 5877784 48 08:54:24 07:37:01 4139968 12543324 3399284 20.75 254808 7987072 4371152 25.08 5679428 5877792 228 08:54:24 07:38:01 4139252 12542624 3399972 20.76 254816 7987076 4371152 25.08 5680020 5877796 204 08:54:24 07:39:01 3952328 12356836 3585832 21.89 255940 7987084 4484168 25.73 5868316 5876500 264 08:54:24 07:40:01 4767812 13172336 2770320 16.91 255948 7987088 3978492 22.83 5056232 5876504 280 08:54:24 07:41:01 3964868 12369600 3573024 21.81 256128 7987096 4487300 25.74 5855080 5876512 228 08:54:24 07:42:01 4049052 12454792 3487844 21.29 257012 7987196 4409260 25.30 5772316 5876404 364 08:54:24 07:43:01 4022776 12428572 3513956 21.45 257028 7987216 4427780 25.40 5797996 5876348 60 08:54:24 07:44:01 3962040 12367864 3574680 21.82 257060 7987208 4527188 25.97 5859120 5876340 84 08:54:24 07:45:01 3959836 12365672 3576948 21.84 257064 7987216 4527188 25.97 5861356 5876348 248 08:54:24 07:46:01 1903316 10378112 5563072 33.96 259908 8047612 6629488 38.04 7846912 5934988 920 08:54:24 07:47:01 2795460 11271220 4670488 28.51 260612 8047840 5831288 33.46 6963340 5930168 476 08:54:24 07:48:01 1454868 9931756 6009116 36.68 261324 8048216 7302556 41.90 8306372 5921888 212 08:54:24 07:49:02 3156044 11633440 4307404 26.29 261328 8048712 5210848 29.90 6609472 5922200 308 08:54:24 07:50:01 5519780 13997752 1945796 11.88 261676 8048896 2880636 16.53 4256692 5921624 748 08:54:24 07:51:01 5509488 13988048 1955504 11.94 261920 8049232 2860628 16.41 4268012 5921300 208 08:54:24 07:52:01 5321120 13800152 2143156 13.08 262324 8049300 2942676 16.88 4454476 5921360 348 08:54:24 07:53:01 4833728 13313500 2629596 16.05 262756 8049592 3558824 20.42 4940140 5921556 420 08:54:24 07:54:01 5114952 13595620 2347612 14.33 263100 8050108 3147368 18.06 4659936 5921812 84 08:54:24 07:55:01 5053468 13534408 2408888 14.71 263116 8050344 3675600 21.09 4720468 5922008 172 08:54:24 07:56:01 4391980 12873424 3069352 18.74 263324 8050636 3891568 22.33 5378668 5922300 108 08:54:24 07:57:01 3558480 12040584 3901648 23.82 263696 8050872 5009116 28.74 6209040 5922408 256 08:54:24 07:58:01 3042896 11525416 4416464 26.96 263700 8051280 5221328 29.96 6723048 5922800 280 08:54:24 07:59:01 3012956 11495764 4446108 27.14 263700 8051568 5237376 30.05 6753356 5923088 268 08:54:24 08:00:01 3679232 12162372 3779916 23.07 263872 8051708 4956180 28.43 6089216 5923224 184 08:54:24 08:01:01 3029028 11512920 4428804 27.04 264060 8052264 5234284 30.03 6736336 5923768 228 08:54:24 08:02:01 3003876 11487948 4453768 27.19 264064 8052448 5234284 30.03 6763064 5923948 184 08:54:24 08:03:01 2976800 11460992 4480700 27.35 264068 8052552 5234284 30.03 6787732 5924056 260 08:54:24 08:04:01 2965028 11449480 4492212 27.42 264072 8052808 5234284 30.03 6799964 5924312 288 08:54:24 08:05:01 2949056 11433884 4507720 27.52 264076 8053184 5250284 30.12 6815160 5924684 120 08:54:24 08:06:01 2923636 11408572 4533036 27.67 264080 8053284 5299784 30.41 6841140 5924784 140 08:54:24 08:07:01 2903380 11388512 4553168 27.79 264080 8053480 5315820 30.50 6859680 5924980 216 08:54:24 08:08:01 2892432 11377788 4563800 27.86 264084 8053704 5315820 30.50 6870660 5925200 44 08:54:24 08:09:01 2892096 11377468 4564064 27.86 264084 8053708 5315820 30.50 6869764 5925208 96 08:54:24 08:10:01 2892136 11377508 4564020 27.86 264088 8053708 5315820 30.50 6869408 5925208 232 08:54:24 08:11:01 5024132 13509524 2433388 14.85 264168 8053720 3498580 20.07 4746788 5925212 688 08:54:24 08:12:01 3091776 11577788 4363872 26.64 264372 8054136 5167852 29.65 6669288 5925612 68 08:54:24 08:13:01 3059512 11546064 4395508 26.83 264372 8054688 5183852 29.74 6702912 5926148 100 08:54:24 08:14:01 2986716 11473892 4467724 27.27 264388 8055272 5199852 29.83 6775304 5926752 356 08:54:24 08:15:01 2988416 11475888 4465672 27.26 264392 8055580 5199852 29.83 6772856 5927044 140 08:54:24 08:16:01 2963712 11451724 4489828 27.41 264392 8056100 5250184 30.12 6795344 5927580 372 08:54:24 08:17:01 2939720 11428212 4513304 27.55 264392 8056580 5250184 30.12 6819608 5928060 368 08:54:24 08:18:01 2920872 11410132 4531404 27.66 264396 8057352 5250184 30.12 6838348 5928808 228 08:54:24 08:19:01 2271424 10760404 5181008 31.63 264616 8056816 6388860 36.65 7489884 5928240 284 08:54:24 08:20:01 1712284 10201600 5739560 35.04 264616 8057156 6555264 37.61 8045200 5928572 152 08:54:24 08:21:01 1581620 10071348 5869524 35.83 264616 8057564 6653456 38.17 8174004 5928980 124 08:54:24 08:22:01 1549788 10039952 5900844 36.02 264628 8057992 6669472 38.26 8205236 5929404 120 08:54:24 08:23:01 1519728 10010200 5930596 36.20 264636 8058288 6669472 38.26 8233872 5929704 292 08:54:24 08:24:01 1496772 9987604 5953080 36.34 264636 8058648 6686044 38.36 8257100 5930064 140 08:54:24 08:25:01 1486848 9978088 5962532 36.40 264636 8059068 6718048 38.54 8266044 5930472 248 08:54:24 08:26:01 1435716 9927100 6013508 36.71 264640 8059192 6734680 38.64 8317220 5930608 228 08:54:24 08:27:01 1434992 9926392 6014208 36.71 264648 8059208 6750668 38.73 8317328 5930620 76 08:54:24 08:28:01 1434780 9926192 6014412 36.72 264652 8059212 6750668 38.73 8317120 5930628 80 08:54:24 08:29:01 1434544 9925964 6014636 36.72 264660 8059212 6750668 38.73 8317284 5930628 36 08:54:24 08:30:01 2540780 11032176 4909328 29.97 264732 8059024 6301060 36.15 7217596 5930436 192 08:54:24 08:31:01 1722712 10214824 5726340 34.96 264992 8059472 6549368 37.58 8031384 5930876 320 08:54:24 08:32:01 1446624 9939444 6001268 36.63 265000 8060192 6747260 38.71 8304160 5931572 412 08:54:24 08:33:01 1430952 9924000 6016720 36.73 265000 8060404 6747260 38.71 8319416 5931796 272 08:54:24 08:34:01 1423612 9916792 6023936 36.77 265016 8060508 6747260 38.71 8326484 5931912 264 08:54:24 08:35:01 1414392 9907692 6033032 36.83 265020 8060620 6747260 38.71 8335396 5932024 400 08:54:24 08:36:01 1401468 9895052 6045736 36.91 265020 8060912 6747260 38.71 8348492 5932308 152 08:54:24 08:37:01 1395932 9889652 6051144 36.94 265020 8061040 6747260 38.71 8353884 5932444 152 08:54:24 08:38:01 1370448 9864280 6076508 37.09 265020 8061152 6780784 38.90 8378368 5932556 184 08:54:24 08:39:01 1346508 9840732 6099948 37.24 265020 8061552 6796788 38.99 8402040 5932948 104 08:54:24 08:40:01 3607384 12346148 3595968 21.95 271056 8286580 4926928 28.27 5961716 6107704 146228 08:54:24 08:41:01 2747908 11488932 4452588 27.18 271284 8288416 5258048 30.17 6826604 6101100 224 08:54:24 08:42:01 6214536 14956036 987372 6.03 271304 8288764 1827692 10.49 3384196 6089232 256 08:54:24 08:43:01 2728844 11471000 4470400 27.29 271496 8289232 5234048 30.03 6866676 6079508 216 08:54:24 08:44:01 2714348 11456668 4484828 27.38 271496 8289396 5234048 30.03 6881152 6079380 92 08:54:24 08:45:01 2695196 11437704 4503784 27.49 271500 8289580 5250036 30.12 6900104 6079552 144 08:54:24 08:46:01 2682468 11425160 4516324 27.57 271500 8289764 5250036 30.12 6913340 6079736 384 08:54:24 08:47:01 2661332 11404344 4537032 27.70 271500 8290112 5266072 30.21 6933080 6080056 340 08:54:24 08:48:01 2647700 11391060 4550316 27.78 271504 8290440 5266072 30.21 6946588 6080376 180 08:54:24 08:49:01 5123260 13866816 2075712 12.67 271504 8290604 2859284 16.40 4478276 6080540 84 08:54:24 08:50:01 2066468 10809940 5131380 31.32 271628 8290276 5890716 33.80 7538604 6068972 388 08:54:24 08:51:01 1951152 10695120 5246016 32.02 271632 8290764 5990716 34.37 7651940 6069316 204 08:54:24 08:52:01 1877408 10622544 5318488 32.47 271636 8291912 6022748 34.55 7722268 6070404 272 08:54:24 08:53:01 1847616 10593400 5347584 32.64 271640 8292556 6055532 34.74 7751228 6071040 192 08:54:24 08:54:01 6394268 15367216 576444 3.52 276784 8499828 1291776 7.41 3027136 6250984 139768 08:54:24 Average: 3067026 11477119 4465326 27.26 255180 7994973 5370146 30.81 6708312 5921187 31284 08:54:24 08:54:24 07:07:02 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 08:54:24 07:08:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:08:01 ens3 85.27 71.28 957.30 8.49 0.00 0.00 0.00 0.00 08:54:24 07:08:01 lo 0.81 0.81 0.08 0.08 0.00 0.00 0.00 0.00 08:54:24 07:09:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:09:01 ens3 430.91 346.02 6545.92 38.10 0.00 0.00 0.00 0.00 08:54:24 07:09:01 lo 6.26 6.26 0.63 0.63 0.00 0.00 0.00 0.00 08:54:24 07:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:10:01 ens3 322.58 258.12 4667.95 25.87 0.00 0.00 0.00 0.00 08:54:24 07:10:01 lo 0.40 0.40 0.04 0.04 0.00 0.00 0.00 0.00 08:54:24 07:11:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:11:01 ens3 220.71 112.51 3965.21 13.18 0.00 0.00 0.00 0.00 08:54:24 07:11:01 lo 1.33 1.33 0.13 0.13 0.00 0.00 0.00 0.00 08:54:24 07:12:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:12:01 ens3 248.96 114.40 2751.78 8.15 0.00 0.00 0.00 0.00 08:54:24 07:12:01 lo 3.80 3.80 0.38 0.38 0.00 0.00 0.00 0.00 08:54:24 07:13:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:13:01 ens3 1.92 1.57 0.47 0.40 0.00 0.00 0.00 0.00 08:54:24 07:13:01 lo 7.71 7.71 14.44 14.44 0.00 0.00 0.00 0.00 08:54:24 07:14:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:14:01 ens3 1.63 1.38 0.31 0.27 0.00 0.00 0.00 0.00 08:54:24 07:14:01 lo 51.62 51.62 39.95 39.95 0.00 0.00 0.00 0.00 08:54:24 07:15:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:15:01 ens3 1.33 1.10 0.22 0.22 0.00 0.00 0.00 0.00 08:54:24 07:15:01 lo 36.43 36.43 17.28 17.28 0.00 0.00 0.00 0.00 08:54:24 07:16:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:16:01 ens3 1.88 2.15 0.80 0.72 0.00 0.00 0.00 0.00 08:54:24 07:16:01 lo 5.61 5.61 1.28 1.28 0.00 0.00 0.00 0.00 08:54:24 07:17:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:17:01 ens3 1.32 0.67 0.29 0.16 0.00 0.00 0.00 0.00 08:54:24 07:17:01 lo 23.71 23.71 23.95 23.95 0.00 0.00 0.00 0.00 08:54:24 07:18:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:18:01 ens3 1.25 0.30 0.16 0.05 0.00 0.00 0.00 0.00 08:54:24 07:18:01 lo 23.70 23.70 14.14 14.14 0.00 0.00 0.00 0.00 08:54:24 07:19:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:19:01 ens3 1.47 0.47 0.39 0.24 0.00 0.00 0.00 0.00 08:54:24 07:19:01 lo 15.33 15.33 5.67 5.67 0.00 0.00 0.00 0.00 08:54:24 07:20:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:20:01 ens3 1.48 1.25 0.28 0.25 0.00 0.00 0.00 0.00 08:54:24 07:20:01 lo 25.01 25.01 8.05 8.05 0.00 0.00 0.00 0.00 08:54:24 07:21:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:21:01 ens3 1.32 0.70 0.15 0.07 0.00 0.00 0.00 0.00 08:54:24 07:21:01 lo 10.41 10.41 3.29 3.29 0.00 0.00 0.00 0.00 08:54:24 07:22:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:22:01 ens3 1.63 0.80 0.56 0.37 0.00 0.00 0.00 0.00 08:54:24 07:22:01 lo 34.49 34.49 13.85 13.85 0.00 0.00 0.00 0.00 08:54:24 07:23:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:23:01 ens3 1.03 0.87 0.19 0.17 0.00 0.00 0.00 0.00 08:54:24 07:23:01 lo 9.42 9.42 7.02 7.02 0.00 0.00 0.00 0.00 08:54:24 07:24:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:24:01 ens3 1.38 1.45 0.27 0.26 0.00 0.00 0.00 0.00 08:54:24 07:24:01 lo 44.26 44.26 16.29 16.29 0.00 0.00 0.00 0.00 08:54:24 07:25:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:25:01 ens3 2.28 2.73 0.91 0.85 0.00 0.00 0.00 0.00 08:54:24 07:25:01 lo 10.93 10.93 3.82 3.82 0.00 0.00 0.00 0.00 08:54:24 07:26:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:26:01 ens3 0.17 0.00 0.01 0.00 0.00 0.00 0.00 0.00 08:54:24 07:26:01 lo 0.23 0.23 0.02 0.02 0.00 0.00 0.00 0.00 08:54:24 07:27:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:27:01 ens3 0.53 0.42 0.16 0.10 0.00 0.00 0.00 0.00 08:54:24 07:27:01 lo 1.35 1.35 0.12 0.12 0.00 0.00 0.00 0.00 08:54:24 07:28:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:28:01 ens3 0.55 0.62 0.10 0.10 0.00 0.00 0.00 0.00 08:54:24 07:28:01 lo 8.32 8.32 5.05 5.05 0.00 0.00 0.00 0.00 08:54:24 07:29:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:29:01 ens3 0.25 0.18 0.02 0.02 0.00 0.00 0.00 0.00 08:54:24 07:29:01 lo 1.58 1.58 0.14 0.14 0.00 0.00 0.00 0.00 08:54:24 07:30:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:30:01 ens3 0.37 0.15 0.03 0.02 0.00 0.00 0.00 0.00 08:54:24 07:30:01 lo 1.37 1.37 0.13 0.13 0.00 0.00 0.00 0.00 08:54:24 07:31:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:31:01 ens3 0.23 0.18 0.02 0.02 0.00 0.00 0.00 0.00 08:54:24 07:31:01 lo 0.98 0.98 0.09 0.09 0.00 0.00 0.00 0.00 08:54:24 07:32:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:32:01 ens3 1.37 1.03 0.50 0.35 0.00 0.00 0.00 0.00 08:54:24 07:32:01 lo 7.77 7.77 4.31 4.31 0.00 0.00 0.00 0.00 08:54:24 07:33:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:33:01 ens3 0.57 0.08 0.06 0.01 0.00 0.00 0.00 0.00 08:54:24 07:33:01 lo 0.82 0.82 0.07 0.07 0.00 0.00 0.00 0.00 08:54:24 07:34:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:34:01 ens3 1.50 0.13 0.18 0.02 0.00 0.00 0.00 0.00 08:54:24 07:34:01 lo 1.63 1.63 0.16 0.16 0.00 0.00 0.00 0.00 08:54:24 07:35:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:35:01 ens3 1.75 1.35 0.53 0.45 0.00 0.00 0.00 0.00 08:54:24 07:35:01 lo 12.43 12.43 5.17 5.17 0.00 0.00 0.00 0.00 08:54:24 07:36:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:36:01 ens3 1.87 1.57 0.39 6.87 0.00 0.00 0.00 0.00 08:54:24 07:36:01 lo 8.98 8.98 8.42 8.42 0.00 0.00 0.00 0.00 08:54:24 07:37:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:37:01 ens3 0.62 0.30 0.17 0.09 0.00 0.00 0.00 0.00 08:54:24 07:37:01 lo 1.30 1.30 0.11 0.11 0.00 0.00 0.00 0.00 08:54:24 07:38:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:38:01 ens3 0.18 0.02 0.01 0.00 0.00 0.00 0.00 0.00 08:54:24 07:38:01 lo 0.05 0.05 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:39:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:39:01 ens3 0.48 0.22 0.04 0.03 0.00 0.00 0.00 0.00 08:54:24 07:39:01 lo 2.82 2.82 1.59 1.59 0.00 0.00 0.00 0.00 08:54:24 07:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:40:01 ens3 0.22 0.12 0.02 0.02 0.00 0.00 0.00 0.00 08:54:24 07:40:01 lo 0.32 0.32 0.03 0.03 0.00 0.00 0.00 0.00 08:54:24 07:41:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:41:01 ens3 0.25 0.10 0.01 0.01 0.00 0.00 0.00 0.00 08:54:24 07:41:01 lo 1.03 1.03 0.08 0.08 0.00 0.00 0.00 0.00 08:54:24 07:42:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:42:01 ens3 0.70 0.55 0.23 0.15 0.00 0.00 0.00 0.00 08:54:24 07:42:01 lo 1.55 1.55 0.14 0.14 0.00 0.00 0.00 0.00 08:54:24 07:43:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:43:01 ens3 0.62 0.45 0.10 0.08 0.00 0.00 0.00 0.00 08:54:24 07:43:01 lo 2.23 2.23 0.29 0.29 0.00 0.00 0.00 0.00 08:54:24 07:44:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:44:01 ens3 0.23 0.13 0.02 0.02 0.00 0.00 0.00 0.00 08:54:24 07:44:01 lo 1.00 1.00 0.08 0.08 0.00 0.00 0.00 0.00 08:54:24 07:45:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:45:01 ens3 0.23 0.10 0.01 0.01 0.00 0.00 0.00 0.00 08:54:24 07:45:01 lo 0.20 0.20 0.01 0.01 0.00 0.00 0.00 0.00 08:54:24 07:46:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:46:01 ens3 2.70 2.78 1.00 1.21 0.00 0.00 0.00 0.00 08:54:24 07:46:01 lo 10.01 10.01 4.10 4.10 0.00 0.00 0.00 0.00 08:54:24 07:47:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:47:01 ens3 1.67 1.43 0.39 0.35 0.00 0.00 0.00 0.00 08:54:24 07:47:01 lo 7.83 7.83 6.26 6.26 0.00 0.00 0.00 0.00 08:54:24 07:48:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:48:01 ens3 0.85 0.80 0.11 0.12 0.00 0.00 0.00 0.00 08:54:24 07:48:01 lo 13.75 13.75 4.73 4.73 0.00 0.00 0.00 0.00 08:54:24 07:49:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:49:02 ens3 8.75 7.97 1.85 5.09 0.00 0.00 0.00 0.00 08:54:24 07:49:02 lo 21.11 21.11 10.60 10.60 0.00 0.00 0.00 0.00 08:54:24 07:50:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:50:01 ens3 0.93 0.81 0.17 0.16 0.00 0.00 0.00 0.00 08:54:24 07:50:01 lo 10.46 10.46 3.42 3.42 0.00 0.00 0.00 0.00 08:54:24 07:51:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:51:01 ens3 0.85 0.87 0.14 0.13 0.00 0.00 0.00 0.00 08:54:24 07:51:01 lo 5.60 5.60 6.27 6.27 0.00 0.00 0.00 0.00 08:54:24 07:52:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:52:01 ens3 0.75 0.70 0.21 0.15 0.00 0.00 0.00 0.00 08:54:24 07:52:01 lo 7.98 7.98 3.11 3.11 0.00 0.00 0.00 0.00 08:54:24 07:53:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:53:01 ens3 0.67 0.75 0.10 0.11 0.00 0.00 0.00 0.00 08:54:24 07:53:01 lo 4.38 4.38 1.15 1.15 0.00 0.00 0.00 0.00 08:54:24 07:54:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:54:01 ens3 0.87 0.95 0.14 0.15 0.00 0.00 0.00 0.00 08:54:24 07:54:01 lo 34.46 34.46 16.69 16.69 0.00 0.00 0.00 0.00 08:54:24 07:55:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:55:01 ens3 1.05 1.30 0.19 0.19 0.00 0.00 0.00 0.00 08:54:24 07:55:01 lo 17.10 17.10 6.24 6.24 0.00 0.00 0.00 0.00 08:54:24 07:56:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:56:01 ens3 1.43 0.78 0.21 0.13 0.00 0.00 0.00 0.00 08:54:24 07:56:01 lo 19.86 19.86 19.68 19.68 0.00 0.00 0.00 0.00 08:54:24 07:57:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:57:01 ens3 2.05 1.30 0.63 0.43 0.00 0.00 0.00 0.00 08:54:24 07:57:01 lo 6.03 6.03 2.31 2.31 0.00 0.00 0.00 0.00 08:54:24 07:58:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:58:01 ens3 1.25 0.80 0.40 0.32 0.00 0.00 0.00 0.00 08:54:24 07:58:01 lo 43.78 43.78 16.66 16.66 0.00 0.00 0.00 0.00 08:54:24 07:59:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 07:59:01 ens3 0.78 0.65 0.14 0.12 0.00 0.00 0.00 0.00 08:54:24 07:59:01 lo 42.83 42.83 12.25 12.25 0.00 0.00 0.00 0.00 08:54:24 08:00:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:00:01 ens3 0.87 0.65 0.11 0.12 0.00 0.00 0.00 0.00 08:54:24 08:00:01 lo 5.73 5.73 1.58 1.58 0.00 0.00 0.00 0.00 08:54:24 08:01:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:01:01 ens3 0.85 0.70 0.15 0.13 0.00 0.00 0.00 0.00 08:54:24 08:01:01 lo 31.36 31.36 22.65 22.65 0.00 0.00 0.00 0.00 08:54:24 08:02:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:02:01 ens3 0.73 0.48 0.23 0.14 0.00 0.00 0.00 0.00 08:54:24 08:02:01 lo 10.41 10.41 6.92 6.92 0.00 0.00 0.00 0.00 08:54:24 08:03:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:03:01 ens3 0.95 0.87 0.16 0.17 0.00 0.00 0.00 0.00 08:54:24 08:03:01 lo 14.53 14.53 6.69 6.69 0.00 0.00 0.00 0.00 08:54:24 08:04:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:04:01 ens3 0.43 0.47 0.08 0.07 0.00 0.00 0.00 0.00 08:54:24 08:04:01 lo 22.95 22.95 9.12 9.12 0.00 0.00 0.00 0.00 08:54:24 08:05:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:05:01 ens3 0.63 0.68 0.10 0.10 0.00 0.00 0.00 0.00 08:54:24 08:05:01 lo 17.81 17.81 8.06 8.06 0.00 0.00 0.00 0.00 08:54:24 08:06:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:06:01 ens3 0.57 0.77 0.12 0.12 0.00 0.00 0.00 0.00 08:54:24 08:06:01 lo 8.33 8.33 4.20 4.20 0.00 0.00 0.00 0.00 08:54:24 08:07:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:07:01 ens3 0.75 0.73 0.22 0.15 0.00 0.00 0.00 0.00 08:54:24 08:07:01 lo 17.48 17.48 7.66 7.66 0.00 0.00 0.00 0.00 08:54:24 08:08:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:08:01 ens3 1.03 0.70 0.35 0.27 0.00 0.00 0.00 0.00 08:54:24 08:08:01 lo 18.21 18.21 6.37 6.37 0.00 0.00 0.00 0.00 08:54:24 08:09:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:09:01 ens3 0.23 0.10 0.01 0.01 0.00 0.00 0.00 0.00 08:54:24 08:09:01 lo 0.20 0.20 0.01 0.01 0.00 0.00 0.00 0.00 08:54:24 08:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:10:01 ens3 0.05 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:10:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:11:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:11:01 ens3 0.65 0.48 0.07 0.08 0.00 0.00 0.00 0.00 08:54:24 08:11:01 lo 1.43 1.43 0.12 0.12 0.00 0.00 0.00 0.00 08:54:24 08:12:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:12:01 ens3 1.03 1.03 0.29 0.22 0.00 0.00 0.00 0.00 08:54:24 08:12:01 lo 34.63 34.63 13.25 13.25 0.00 0.00 0.00 0.00 08:54:24 08:13:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:13:01 ens3 0.55 0.63 0.09 0.10 0.00 0.00 0.00 0.00 08:54:24 08:13:01 lo 40.54 40.54 12.65 12.65 0.00 0.00 0.00 0.00 08:54:24 08:14:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:14:01 ens3 0.58 0.60 0.10 0.10 0.00 0.00 0.00 0.00 08:54:24 08:14:01 lo 39.21 39.21 12.23 12.23 0.00 0.00 0.00 0.00 08:54:24 08:15:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:15:01 ens3 0.40 0.37 0.05 0.05 0.00 0.00 0.00 0.00 08:54:24 08:15:01 lo 25.93 25.93 6.96 6.96 0.00 0.00 0.00 0.00 08:54:24 08:16:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:16:01 ens3 0.23 0.20 0.04 0.03 0.00 0.00 0.00 0.00 08:54:24 08:16:01 lo 29.48 29.48 9.12 9.12 0.00 0.00 0.00 0.00 08:54:24 08:17:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:17:01 ens3 0.73 0.37 0.19 0.09 0.00 0.00 0.00 0.00 08:54:24 08:17:01 lo 31.64 31.64 9.75 9.75 0.00 0.00 0.00 0.00 08:54:24 08:18:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:18:01 ens3 0.92 0.48 0.37 0.27 0.00 0.00 0.00 0.00 08:54:24 08:18:01 lo 63.34 63.34 19.03 19.03 0.00 0.00 0.00 0.00 08:54:24 08:19:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:19:01 ens3 1.13 0.73 0.14 0.09 0.00 0.00 0.00 0.00 08:54:24 08:19:01 lo 6.20 6.20 10.64 10.64 0.00 0.00 0.00 0.00 08:54:24 08:20:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:20:01 ens3 1.05 0.62 0.18 0.13 0.00 0.00 0.00 0.00 08:54:24 08:20:01 lo 26.06 26.06 14.25 14.25 0.00 0.00 0.00 0.00 08:54:24 08:21:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:21:01 ens3 1.43 0.87 0.47 0.35 0.00 0.00 0.00 0.00 08:54:24 08:21:01 lo 27.98 27.98 13.00 13.00 0.00 0.00 0.00 0.00 08:54:24 08:22:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:22:01 ens3 0.98 0.65 0.47 0.34 0.00 0.00 0.00 0.00 08:54:24 08:22:01 lo 22.36 22.36 10.13 10.13 0.00 0.00 0.00 0.00 08:54:24 08:23:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:23:01 ens3 0.78 0.62 0.14 0.12 0.00 0.00 0.00 0.00 08:54:24 08:23:01 lo 22.03 22.03 8.90 8.90 0.00 0.00 0.00 0.00 08:54:24 08:24:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:24:01 ens3 0.45 0.32 0.08 0.06 0.00 0.00 0.00 0.00 08:54:24 08:24:01 lo 33.63 33.63 10.76 10.76 0.00 0.00 0.00 0.00 08:54:24 08:25:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:25:01 ens3 0.73 0.57 0.12 0.11 0.00 0.00 0.00 0.00 08:54:24 08:25:01 lo 22.83 22.83 10.50 10.50 0.00 0.00 0.00 0.00 08:54:24 08:26:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:26:01 ens3 0.52 0.40 0.09 0.08 0.00 0.00 0.00 0.00 08:54:24 08:26:01 lo 17.93 17.93 7.41 7.41 0.00 0.00 0.00 0.00 08:54:24 08:27:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:27:01 ens3 0.55 0.25 0.16 0.08 0.00 0.00 0.00 0.00 08:54:24 08:27:01 lo 1.73 1.73 0.67 0.67 0.00 0.00 0.00 0.00 08:54:24 08:28:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:28:01 ens3 0.62 0.00 0.06 0.00 0.00 0.00 0.00 0.00 08:54:24 08:28:01 lo 0.47 0.47 0.04 0.04 0.00 0.00 0.00 0.00 08:54:24 08:29:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:29:01 ens3 0.63 0.37 0.31 0.24 0.00 0.00 0.00 0.00 08:54:24 08:29:01 lo 0.73 0.73 0.07 0.07 0.00 0.00 0.00 0.00 08:54:24 08:30:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:30:01 ens3 0.73 0.73 0.10 0.10 0.00 0.00 0.00 0.00 08:54:24 08:30:01 lo 2.58 2.58 0.24 0.24 0.00 0.00 0.00 0.00 08:54:24 08:31:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:31:01 ens3 0.95 0.78 0.17 0.15 0.00 0.00 0.00 0.00 08:54:24 08:31:01 lo 23.81 23.81 22.70 22.70 0.00 0.00 0.00 0.00 08:54:24 08:32:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:32:01 ens3 1.07 1.13 0.48 0.38 0.00 0.00 0.00 0.00 08:54:24 08:32:01 lo 45.13 45.13 20.16 20.16 0.00 0.00 0.00 0.00 08:54:24 08:33:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:33:01 ens3 0.67 0.50 0.11 0.09 0.00 0.00 0.00 0.00 08:54:24 08:33:01 lo 12.51 12.51 8.53 8.53 0.00 0.00 0.00 0.00 08:54:24 08:34:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:34:01 ens3 1.32 0.68 0.41 0.29 0.00 0.00 0.00 0.00 08:54:24 08:34:01 lo 14.33 14.33 6.41 6.41 0.00 0.00 0.00 0.00 08:54:24 08:35:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:35:01 ens3 0.72 0.63 0.13 0.12 0.00 0.00 0.00 0.00 08:54:24 08:35:01 lo 16.31 16.31 10.49 10.49 0.00 0.00 0.00 0.00 08:54:24 08:36:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:36:01 ens3 0.37 0.28 0.07 0.06 0.00 0.00 0.00 0.00 08:54:24 08:36:01 lo 11.63 11.63 5.96 5.96 0.00 0.00 0.00 0.00 08:54:24 08:37:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:37:01 ens3 0.82 0.53 0.23 0.14 0.00 0.00 0.00 0.00 08:54:24 08:37:01 lo 19.61 19.61 9.05 9.05 0.00 0.00 0.00 0.00 08:54:24 08:38:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:38:01 ens3 0.37 0.30 0.07 0.06 0.00 0.00 0.00 0.00 08:54:24 08:38:01 lo 10.98 10.98 7.54 7.54 0.00 0.00 0.00 0.00 08:54:24 08:39:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:39:01 ens3 0.52 0.38 0.08 0.07 0.00 0.00 0.00 0.00 08:54:24 08:39:01 lo 35.14 35.14 12.49 12.49 0.00 0.00 0.00 0.00 08:54:24 08:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:40:01 ens3 2.12 2.22 0.87 0.77 0.00 0.00 0.00 0.00 08:54:24 08:40:01 lo 2.73 2.73 0.26 0.26 0.00 0.00 0.00 0.00 08:54:24 08:41:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:41:01 ens3 0.87 1.15 0.17 0.18 0.00 0.00 0.00 0.00 08:54:24 08:41:01 lo 44.06 44.06 37.42 37.42 0.00 0.00 0.00 0.00 08:54:24 08:42:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:42:01 ens3 1.25 1.55 0.34 0.29 0.00 0.00 0.00 0.00 08:54:24 08:42:01 lo 28.44 28.44 10.28 10.28 0.00 0.00 0.00 0.00 08:54:24 08:43:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:43:01 ens3 0.80 0.93 0.12 0.13 0.00 0.00 0.00 0.00 08:54:24 08:43:01 lo 33.78 33.78 17.72 17.72 0.00 0.00 0.00 0.00 08:54:24 08:44:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:44:01 ens3 0.72 0.88 0.14 0.14 0.00 0.00 0.00 0.00 08:54:24 08:44:01 lo 10.30 10.30 4.48 4.48 0.00 0.00 0.00 0.00 08:54:24 08:45:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:45:01 ens3 0.88 1.02 0.15 0.17 0.00 0.00 0.00 0.00 08:54:24 08:45:01 lo 18.06 18.06 7.24 7.24 0.00 0.00 0.00 0.00 08:54:24 08:46:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:46:01 ens3 0.68 0.72 0.11 0.11 0.00 0.00 0.00 0.00 08:54:24 08:46:01 lo 16.06 16.06 6.48 6.48 0.00 0.00 0.00 0.00 08:54:24 08:47:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:47:01 ens3 0.92 1.08 0.26 0.21 0.00 0.00 0.00 0.00 08:54:24 08:47:01 lo 38.29 38.29 12.92 12.92 0.00 0.00 0.00 0.00 08:54:24 08:48:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:48:01 ens3 0.58 0.62 0.10 0.10 0.00 0.00 0.00 0.00 08:54:24 08:48:01 lo 20.48 20.48 7.84 7.84 0.00 0.00 0.00 0.00 08:54:24 08:49:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:49:01 ens3 1.00 1.33 0.20 0.21 0.00 0.00 0.00 0.00 08:54:24 08:49:01 lo 37.91 37.91 12.17 12.17 0.00 0.00 0.00 0.00 08:54:24 08:50:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:50:01 ens3 0.90 0.88 0.13 0.12 0.00 0.00 0.00 0.00 08:54:24 08:50:01 lo 22.08 22.08 13.73 13.73 0.00 0.00 0.00 0.00 08:54:24 08:51:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:51:01 ens3 0.83 1.15 0.17 0.18 0.00 0.00 0.00 0.00 08:54:24 08:51:01 lo 33.09 33.09 10.75 10.75 0.00 0.00 0.00 0.00 08:54:24 08:52:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:52:01 ens3 0.57 0.53 0.19 0.13 0.00 0.00 0.00 0.00 08:54:24 08:52:01 lo 87.10 87.10 31.38 31.38 0.00 0.00 0.00 0.00 08:54:24 08:53:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:53:01 ens3 0.53 0.47 0.09 0.09 0.00 0.00 0.00 0.00 08:54:24 08:53:01 lo 73.90 73.90 23.89 23.89 0.00 0.00 0.00 0.00 08:54:24 08:54:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 08:54:01 ens3 151.42 109.95 1958.78 16.79 0.00 0.00 0.00 0.00 08:54:24 08:54:01 lo 3.18 3.18 1.07 1.07 0.00 0.00 0.00 0.00 08:54:24 Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:54:24 Average: ens3 14.56 10.21 194.97 1.30 0.00 0.00 0.00 0.00 08:54:24 Average: lo 17.47 17.47 7.98 7.98 0.00 0.00 0.00 0.00 08:54:24 08:54:24 08:54:24 ---> sar -P ALL: 08:54:24 Linux 5.4.0-190-generic (prd-ubuntu2004-docker-4c-16g-23715) 09/18/24 _x86_64_ (4 CPU) 08:54:24 08:54:24 07:06:09 LINUX RESTART (4 CPU) 08:54:24 08:54:24 07:07:02 CPU %user %nice %system %iowait %steal %idle 08:54:24 07:08:01 all 17.80 8.87 6.93 2.09 0.09 64.22 08:54:24 07:08:01 0 5.99 9.96 7.36 3.56 0.07 73.07 08:54:24 07:08:01 1 24.87 8.48 6.95 1.52 0.09 58.09 08:54:24 07:08:01 2 30.82 7.99 6.29 1.25 0.12 53.53 08:54:24 07:08:01 3 9.55 9.04 7.12 2.04 0.08 72.16 08:54:24 07:09:01 all 66.24 0.00 4.61 3.75 0.13 25.27 08:54:24 07:09:01 0 60.51 0.00 4.35 4.52 0.12 30.51 08:54:24 07:09:01 1 67.45 0.00 4.81 4.55 0.15 23.04 08:54:24 07:09:01 2 72.64 0.00 5.21 3.43 0.15 18.57 08:54:24 07:09:01 3 64.31 0.00 4.08 2.49 0.12 29.00 08:54:24 07:10:01 all 54.97 0.00 2.03 2.15 0.11 40.73 08:54:24 07:10:01 0 40.71 0.00 1.92 2.59 0.12 54.66 08:54:24 07:10:01 1 77.50 0.00 3.06 0.84 0.13 18.47 08:54:24 07:10:01 2 48.84 0.00 2.00 5.01 0.12 44.03 08:54:24 07:10:01 3 52.86 0.00 1.13 0.13 0.08 45.79 08:54:24 07:11:01 all 78.38 0.00 4.37 8.75 0.13 8.37 08:54:24 07:11:01 0 78.72 0.00 4.96 9.16 0.12 7.04 08:54:24 07:11:01 1 80.90 0.00 4.07 2.20 0.12 12.71 08:54:24 07:11:01 2 73.76 0.00 4.06 14.20 0.13 7.84 08:54:24 07:11:01 3 80.13 0.00 4.36 9.49 0.15 5.86 08:54:24 07:12:01 all 83.13 0.00 4.20 8.10 0.16 4.41 08:54:24 07:12:01 0 84.17 0.00 3.75 4.77 0.19 7.11 08:54:24 07:12:01 1 82.63 0.00 4.46 6.16 0.13 6.62 08:54:24 07:12:01 2 83.26 0.00 4.61 9.57 0.19 2.38 08:54:24 07:12:01 3 82.46 0.00 3.96 11.91 0.14 1.53 08:54:24 07:13:01 all 62.35 0.00 2.22 0.63 0.11 34.69 08:54:24 07:13:01 0 61.74 0.00 2.47 0.45 0.10 35.24 08:54:24 07:13:01 1 64.06 0.00 2.36 0.67 0.12 32.79 08:54:24 07:13:01 2 62.16 0.00 1.97 0.27 0.12 35.49 08:54:24 07:13:01 3 61.43 0.00 2.06 1.12 0.12 35.26 08:54:24 07:14:01 all 41.38 0.00 1.56 0.31 0.13 56.63 08:54:24 07:14:01 0 43.23 0.00 1.52 0.69 0.13 54.43 08:54:24 07:14:01 1 42.25 0.00 1.51 0.08 0.12 56.04 08:54:24 07:14:01 2 38.35 0.00 1.53 0.25 0.13 59.74 08:54:24 07:14:01 3 41.67 0.00 1.69 0.20 0.12 56.32 08:54:24 07:15:01 all 41.09 0.00 1.51 0.33 0.10 56.97 08:54:24 07:15:01 0 40.52 0.00 1.54 0.77 0.12 57.04 08:54:24 07:15:01 1 43.06 0.00 1.51 0.37 0.10 54.97 08:54:24 07:15:01 2 39.41 0.00 1.71 0.03 0.10 58.74 08:54:24 07:15:01 3 41.38 0.00 1.26 0.15 0.08 57.13 08:54:24 07:16:01 all 85.58 0.00 2.97 0.24 0.13 11.09 08:54:24 07:16:01 0 84.49 0.00 3.15 0.64 0.12 11.61 08:54:24 07:16:01 1 86.82 0.00 2.70 0.05 0.12 10.31 08:54:24 07:16:01 2 84.36 0.00 2.81 0.20 0.15 12.47 08:54:24 07:16:01 3 86.65 0.00 3.20 0.07 0.13 9.95 08:54:24 07:17:01 all 27.59 0.00 0.92 0.38 0.12 70.99 08:54:24 07:17:01 0 26.74 0.00 1.05 0.42 0.13 71.67 08:54:24 07:17:01 1 28.34 0.00 0.79 0.07 0.12 70.69 08:54:24 07:17:01 2 27.60 0.00 1.00 0.88 0.12 70.40 08:54:24 07:17:01 3 27.70 0.00 0.86 0.13 0.10 71.21 08:54:24 07:18:01 all 8.80 0.00 0.43 0.02 0.10 90.65 08:54:24 07:18:01 0 9.40 0.00 0.47 0.03 0.10 90.00 08:54:24 07:18:01 1 8.20 0.00 0.37 0.00 0.12 91.31 08:54:24 07:18:01 2 8.74 0.00 0.48 0.03 0.08 90.66 08:54:24 07:18:01 3 8.86 0.00 0.40 0.00 0.10 90.63 08:54:24 08:54:24 07:18:01 CPU %user %nice %system %iowait %steal %idle 08:54:24 07:19:01 all 2.74 0.00 0.33 0.01 0.13 96.80 08:54:24 07:19:01 0 2.68 0.00 0.40 0.03 0.12 96.77 08:54:24 07:19:01 1 2.94 0.00 0.30 0.00 0.12 96.64 08:54:24 07:19:01 2 2.76 0.00 0.28 0.02 0.13 96.80 08:54:24 07:19:01 3 2.56 0.00 0.32 0.00 0.13 96.99 08:54:24 07:20:01 all 22.42 0.00 1.00 0.12 0.09 76.38 08:54:24 07:20:01 0 23.24 0.00 1.01 0.35 0.08 75.32 08:54:24 07:20:01 1 22.69 0.00 0.95 0.07 0.10 76.19 08:54:24 07:20:01 2 20.92 0.00 1.17 0.05 0.10 77.76 08:54:24 07:20:01 3 22.82 0.00 0.85 0.00 0.08 76.24 08:54:24 07:21:01 all 76.12 0.00 2.31 0.54 0.13 20.90 08:54:24 07:21:01 0 75.84 0.00 2.21 0.10 0.13 21.72 08:54:24 07:21:01 1 74.93 0.00 2.16 0.03 0.12 22.76 08:54:24 07:21:01 2 77.60 0.00 2.10 1.46 0.12 18.72 08:54:24 07:21:01 3 76.10 0.00 2.79 0.55 0.17 20.39 08:54:24 07:22:01 all 14.63 0.00 0.49 0.01 0.10 84.78 08:54:24 07:22:01 0 15.22 0.00 0.40 0.00 0.10 84.28 08:54:24 07:22:01 1 14.23 0.00 0.47 0.02 0.10 85.18 08:54:24 07:22:01 2 14.22 0.00 0.52 0.03 0.10 85.13 08:54:24 07:22:01 3 14.84 0.00 0.55 0.00 0.08 84.53 08:54:24 07:23:01 all 2.41 0.00 0.23 0.01 0.10 97.26 08:54:24 07:23:01 0 2.12 0.00 0.22 0.02 0.08 97.56 08:54:24 07:23:01 1 2.04 0.00 0.30 0.03 0.10 97.53 08:54:24 07:23:01 2 2.08 0.00 0.23 0.00 0.10 97.58 08:54:24 07:23:01 3 3.39 0.00 0.15 0.00 0.10 96.36 08:54:24 07:24:01 all 17.04 0.00 0.75 0.05 0.10 82.06 08:54:24 07:24:01 0 17.23 0.00 0.92 0.08 0.10 81.66 08:54:24 07:24:01 1 17.26 0.00 0.66 0.07 0.10 81.92 08:54:24 07:24:01 2 16.70 0.00 0.62 0.00 0.10 82.58 08:54:24 07:24:01 3 16.97 0.00 0.82 0.05 0.08 82.08 08:54:24 07:25:01 all 51.05 0.00 1.89 0.76 0.10 46.20 08:54:24 07:25:01 0 51.18 0.00 1.83 0.57 0.10 46.32 08:54:24 07:25:01 1 45.88 0.00 1.93 0.08 0.10 52.01 08:54:24 07:25:01 2 58.44 0.00 1.96 0.32 0.10 39.18 08:54:24 07:25:01 3 48.65 0.00 1.84 2.06 0.12 47.33 08:54:24 07:26:01 all 5.21 0.00 0.52 0.73 0.10 93.43 08:54:24 07:26:01 0 6.03 0.00 0.73 0.08 0.12 93.04 08:54:24 07:26:01 1 4.24 0.00 0.47 2.38 0.10 92.81 08:54:24 07:26:01 2 5.08 0.00 0.43 0.43 0.10 93.95 08:54:24 07:26:01 3 5.49 0.00 0.45 0.05 0.08 93.93 08:54:24 07:27:01 all 17.43 0.00 0.75 0.05 0.12 81.65 08:54:24 07:27:01 0 18.36 0.00 0.70 0.05 0.12 80.77 08:54:24 07:27:01 1 16.16 0.00 0.73 0.05 0.13 82.92 08:54:24 07:27:01 2 18.30 0.00 0.70 0.00 0.10 80.90 08:54:24 07:27:01 3 16.90 0.00 0.85 0.12 0.12 82.01 08:54:24 07:28:01 all 5.08 0.00 0.38 0.03 0.08 94.43 08:54:24 07:28:01 0 5.05 0.00 0.42 0.03 0.08 94.41 08:54:24 07:28:01 1 4.48 0.00 0.35 0.10 0.08 94.98 08:54:24 07:28:01 2 5.03 0.00 0.39 0.00 0.07 94.52 08:54:24 07:28:01 3 5.77 0.00 0.35 0.00 0.08 93.80 08:54:24 07:29:01 all 16.78 0.00 0.70 0.07 0.10 82.34 08:54:24 07:29:01 0 17.52 0.00 0.62 0.12 0.08 81.66 08:54:24 07:29:01 1 16.49 0.00 0.92 0.10 0.12 82.37 08:54:24 07:29:01 2 15.28 0.00 0.57 0.00 0.12 84.03 08:54:24 07:29:01 3 17.84 0.00 0.71 0.07 0.10 81.29 08:54:24 08:54:24 07:29:01 CPU %user %nice %system %iowait %steal %idle 08:54:24 07:30:01 all 14.27 0.00 0.63 0.02 0.10 84.98 08:54:24 07:30:01 0 12.46 0.00 0.84 0.05 0.10 86.55 08:54:24 07:30:01 1 15.64 0.00 0.45 0.02 0.10 83.79 08:54:24 07:30:01 2 14.10 0.00 0.60 0.00 0.08 85.22 08:54:24 07:30:01 3 14.89 0.00 0.64 0.00 0.12 84.36 08:54:24 07:31:01 all 3.13 0.00 0.37 0.02 0.11 96.37 08:54:24 07:31:01 0 3.11 0.00 0.62 0.03 0.12 96.12 08:54:24 07:31:01 1 2.91 0.00 0.23 0.02 0.12 96.72 08:54:24 07:31:01 2 3.57 0.00 0.27 0.02 0.12 96.03 08:54:24 07:31:01 3 2.92 0.00 0.37 0.00 0.08 96.62 08:54:24 07:32:01 all 22.52 0.00 1.08 0.06 0.10 76.23 08:54:24 07:32:01 0 22.31 0.00 1.12 0.03 0.10 76.43 08:54:24 07:32:01 1 22.66 0.00 1.12 0.07 0.07 76.09 08:54:24 07:32:01 2 23.73 0.00 0.99 0.13 0.10 75.05 08:54:24 07:32:01 3 21.39 0.00 1.10 0.02 0.13 77.35 08:54:24 07:33:01 all 0.87 0.00 0.34 0.02 0.08 98.68 08:54:24 07:33:01 0 0.82 0.00 0.34 0.07 0.08 98.69 08:54:24 07:33:01 1 1.11 0.00 0.32 0.02 0.08 98.47 08:54:24 07:33:01 2 0.50 0.00 0.32 0.00 0.08 99.09 08:54:24 07:33:01 3 1.06 0.00 0.40 0.00 0.07 98.48 08:54:24 07:34:01 all 19.83 0.00 0.93 0.02 0.09 79.13 08:54:24 07:34:01 0 20.32 0.00 0.89 0.05 0.08 78.66 08:54:24 07:34:01 1 20.34 0.00 0.79 0.03 0.10 78.74 08:54:24 07:34:01 2 19.94 0.00 0.82 0.00 0.08 79.16 08:54:24 07:34:01 3 18.71 0.00 1.22 0.00 0.08 79.98 08:54:24 07:35:01 all 9.04 0.00 0.73 0.02 0.10 90.12 08:54:24 07:35:01 0 9.36 0.00 0.84 0.03 0.10 89.67 08:54:24 07:35:01 1 8.09 0.00 0.84 0.02 0.10 90.96 08:54:24 07:35:01 2 9.73 0.00 0.50 0.00 0.10 89.67 08:54:24 07:35:01 3 8.98 0.00 0.73 0.02 0.10 90.17 08:54:24 07:36:01 all 45.74 0.00 1.64 0.26 0.13 52.24 08:54:24 07:36:01 0 44.82 0.00 1.79 0.60 0.12 52.67 08:54:24 07:36:01 1 45.68 0.00 1.81 0.08 0.13 52.30 08:54:24 07:36:01 2 43.53 0.00 1.68 0.32 0.12 54.36 08:54:24 07:36:01 3 48.91 0.00 1.30 0.02 0.13 49.64 08:54:24 07:37:01 all 18.69 0.00 0.77 0.03 0.09 80.43 08:54:24 07:37:01 0 17.40 0.00 0.92 0.07 0.08 81.53 08:54:24 07:37:01 1 18.95 0.00 0.82 0.03 0.10 80.10 08:54:24 07:37:01 2 19.52 0.00 0.75 0.00 0.08 79.64 08:54:24 07:37:01 3 18.87 0.00 0.59 0.00 0.08 80.46 08:54:24 07:38:01 all 1.56 0.00 0.36 0.01 0.07 98.00 08:54:24 07:38:01 0 0.80 0.00 0.25 0.00 0.05 98.90 08:54:24 07:38:01 1 1.13 0.00 0.32 0.02 0.07 98.46 08:54:24 07:38:01 2 1.42 0.00 0.33 0.00 0.08 98.16 08:54:24 07:38:01 3 2.88 0.00 0.53 0.02 0.10 96.48 08:54:24 07:39:01 all 24.16 0.00 0.94 0.29 0.08 74.52 08:54:24 07:39:01 0 20.64 0.00 0.81 0.00 0.10 78.45 08:54:24 07:39:01 1 24.49 0.00 1.05 0.02 0.07 74.38 08:54:24 07:39:01 2 26.17 0.00 0.94 0.62 0.08 72.19 08:54:24 07:39:01 3 25.35 0.00 0.95 0.52 0.08 73.10 08:54:24 07:40:01 all 1.60 0.00 0.42 0.02 0.09 97.87 08:54:24 07:40:01 0 1.70 0.00 0.47 0.00 0.08 97.74 08:54:24 07:40:01 1 1.56 0.00 0.59 0.02 0.08 97.75 08:54:24 07:40:01 2 1.59 0.00 0.38 0.00 0.12 97.91 08:54:24 07:40:01 3 1.54 0.00 0.23 0.07 0.08 98.08 08:54:24 08:54:24 07:40:01 CPU %user %nice %system %iowait %steal %idle 08:54:24 07:41:01 all 18.70 0.00 0.84 0.02 0.08 80.37 08:54:24 07:41:01 0 19.05 0.00 0.65 0.00 0.05 80.25 08:54:24 07:41:01 1 20.22 0.00 0.96 0.02 0.08 78.72 08:54:24 07:41:01 2 16.64 0.00 0.97 0.03 0.08 82.27 08:54:24 07:41:01 3 18.90 0.00 0.79 0.02 0.08 80.21 08:54:24 07:42:01 all 20.98 0.00 0.93 0.28 0.10 77.70 08:54:24 07:42:01 0 20.64 0.00 0.96 0.03 0.10 78.27 08:54:24 07:42:01 1 21.17 0.00 0.90 0.02 0.10 77.81 08:54:24 07:42:01 2 21.19 0.00 0.90 0.03 0.10 77.77 08:54:24 07:42:01 3 20.93 0.00 0.97 1.02 0.12 76.96 08:54:24 07:43:01 all 1.23 0.00 0.29 0.01 0.07 98.40 08:54:24 07:43:01 0 1.18 0.00 0.34 0.02 0.08 98.39 08:54:24 07:43:01 1 1.39 0.00 0.32 0.00 0.07 98.23 08:54:24 07:43:01 2 1.05 0.00 0.27 0.00 0.07 98.61 08:54:24 07:43:01 3 1.30 0.00 0.25 0.02 0.07 98.36 08:54:24 07:44:01 all 18.88 0.00 0.92 0.06 0.10 80.04 08:54:24 07:44:01 0 15.76 0.00 1.19 0.05 0.10 82.90 08:54:24 07:44:01 1 19.62 0.00 0.80 0.00 0.10 79.47 08:54:24 07:44:01 2 20.39 0.00 0.98 0.13 0.10 78.40 08:54:24 07:44:01 3 19.74 0.00 0.70 0.07 0.08 79.41 08:54:24 07:45:01 all 0.91 0.00 0.35 0.01 0.10 98.63 08:54:24 07:45:01 0 0.63 0.00 0.27 0.02 0.12 98.96 08:54:24 07:45:01 1 1.08 0.00 0.32 0.00 0.10 98.50 08:54:24 07:45:01 2 0.80 0.00 0.28 0.02 0.07 98.83 08:54:24 07:45:01 3 1.14 0.00 0.52 0.02 0.12 98.21 08:54:24 07:46:01 all 46.54 0.00 1.97 0.30 0.10 51.08 08:54:24 07:46:01 0 43.31 0.00 1.73 0.34 0.10 54.51 08:54:24 07:46:01 1 53.21 0.00 2.22 0.17 0.10 44.30 08:54:24 07:46:01 2 46.29 0.00 1.78 0.02 0.10 51.82 08:54:24 07:46:01 3 43.40 0.00 2.17 0.67 0.10 53.66 08:54:24 07:47:01 all 35.35 0.00 1.38 0.36 0.09 62.82 08:54:24 07:47:01 0 36.34 0.00 1.06 0.12 0.10 62.39 08:54:24 07:47:01 1 35.78 0.00 1.34 0.10 0.07 62.71 08:54:24 07:47:01 2 35.70 0.00 1.76 0.27 0.10 62.17 08:54:24 07:47:01 3 33.60 0.00 1.35 0.95 0.10 64.00 08:54:24 07:48:01 all 49.27 0.00 2.01 0.44 0.11 48.18 08:54:24 07:48:01 0 51.14 0.00 2.08 0.22 0.10 46.46 08:54:24 07:48:01 1 50.86 0.00 1.78 0.13 0.12 47.10 08:54:24 07:48:01 2 47.04 0.00 1.91 0.60 0.10 50.34 08:54:24 07:48:01 3 48.04 0.00 2.26 0.79 0.12 48.79 08:54:24 07:49:02 all 11.69 0.00 0.61 0.03 0.10 87.58 08:54:24 07:49:02 0 10.99 0.00 0.73 0.05 0.10 88.13 08:54:24 07:49:02 1 12.29 0.00 0.60 0.03 0.07 87.01 08:54:24 07:49:02 2 10.99 0.00 0.45 0.02 0.10 88.44 08:54:24 07:49:02 3 12.48 0.00 0.67 0.00 0.12 86.73 08:54:24 07:50:01 all 25.35 0.00 1.05 0.22 0.10 73.28 08:54:24 07:50:01 0 26.58 0.00 1.05 0.63 0.10 71.64 08:54:24 07:50:01 1 26.84 0.00 1.07 0.15 0.10 71.84 08:54:24 07:50:01 2 24.37 0.00 1.07 0.08 0.10 74.37 08:54:24 07:50:01 3 23.60 0.00 1.00 0.03 0.10 75.27 08:54:24 07:51:01 all 30.59 0.00 1.02 0.17 0.10 68.12 08:54:24 07:51:01 0 32.29 0.00 0.99 0.62 0.10 66.01 08:54:24 07:51:01 1 30.87 0.00 0.92 0.02 0.07 68.13 08:54:24 07:51:01 2 28.27 0.00 0.89 0.03 0.12 70.69 08:54:24 07:51:01 3 30.95 0.00 1.31 0.00 0.10 67.65 08:54:24 08:54:24 07:51:01 CPU %user %nice %system %iowait %steal %idle 08:54:24 07:52:01 all 6.69 0.00 0.36 0.28 0.09 92.57 08:54:24 07:52:01 0 7.15 0.00 0.42 0.48 0.12 91.84 08:54:24 07:52:01 1 6.04 0.00 0.28 0.38 0.05 93.25 08:54:24 07:52:01 2 6.57 0.00 0.50 0.25 0.10 92.58 08:54:24 07:52:01 3 7.02 0.00 0.25 0.02 0.08 92.63 08:54:24 07:53:01 all 30.89 0.00 1.03 0.22 0.09 67.77 08:54:24 07:53:01 0 33.59 0.00 0.84 0.02 0.08 65.47 08:54:24 07:53:01 1 31.11 0.00 1.22 0.08 0.08 67.50 08:54:24 07:53:01 2 27.15 0.00 0.83 0.48 0.10 71.44 08:54:24 07:53:01 3 31.73 0.00 1.24 0.28 0.10 66.64 08:54:24 07:54:01 all 38.08 0.00 1.26 1.03 0.11 59.51 08:54:24 07:54:01 0 36.14 0.00 1.32 0.18 0.13 62.22 08:54:24 07:54:01 1 35.70 0.00 1.39 0.02 0.08 62.81 08:54:24 07:54:01 2 40.60 0.00 1.12 3.86 0.12 54.30 08:54:24 07:54:01 3 39.92 0.00 1.22 0.08 0.12 58.66 08:54:24 07:55:01 all 27.42 0.00 1.02 0.02 0.09 71.45 08:54:24 07:55:01 0 25.73 0.00 1.07 0.00 0.10 73.10 08:54:24 07:55:01 1 29.28 0.00 1.12 0.00 0.08 69.52 08:54:24 07:55:01 2 26.64 0.00 0.95 0.07 0.10 72.24 08:54:24 07:55:01 3 28.03 0.00 0.94 0.02 0.07 70.95 08:54:24 07:56:01 all 15.82 0.00 0.53 0.27 0.10 83.29 08:54:24 07:56:01 0 15.43 0.00 0.77 0.45 0.10 83.25 08:54:24 07:56:01 1 14.77 0.00 0.40 0.00 0.08 84.75 08:54:24 07:56:01 2 16.78 0.00 0.52 0.62 0.12 81.97 08:54:24 07:56:01 3 16.30 0.00 0.42 0.00 0.08 83.19 08:54:24 07:57:01 all 42.60 0.00 1.41 0.26 0.11 55.61 08:54:24 07:57:01 0 41.95 0.00 1.49 0.23 0.12 56.21 08:54:24 07:57:01 1 43.10 0.00 1.25 0.13 0.10 55.42 08:54:24 07:57:01 2 40.96 0.00 1.27 0.63 0.13 57.00 08:54:24 07:57:01 3 44.39 0.00 1.65 0.05 0.10 53.80 08:54:24 07:58:01 all 13.14 0.00 0.49 0.07 0.10 86.20 08:54:24 07:58:01 0 13.12 0.00 0.52 0.02 0.10 86.24 08:54:24 07:58:01 1 13.14 0.00 0.45 0.00 0.10 86.31 08:54:24 07:58:01 2 13.20 0.00 0.47 0.13 0.08 86.12 08:54:24 07:58:01 3 13.09 0.00 0.53 0.13 0.10 86.15 08:54:24 07:59:01 all 4.33 0.00 0.32 0.03 0.07 95.24 08:54:24 07:59:01 0 4.06 0.00 0.42 0.02 0.07 95.44 08:54:24 07:59:01 1 4.57 0.00 0.30 0.00 0.08 95.05 08:54:24 07:59:01 2 4.37 0.00 0.32 0.12 0.07 95.12 08:54:24 07:59:01 3 4.34 0.00 0.25 0.00 0.07 95.35 08:54:24 08:00:01 all 39.76 0.00 1.49 0.25 0.14 58.36 08:54:24 08:00:01 0 41.91 0.00 1.60 0.12 0.12 56.26 08:54:24 08:00:01 1 41.44 0.00 1.56 0.00 0.23 56.77 08:54:24 08:00:01 2 41.20 0.00 1.51 0.75 0.12 56.42 08:54:24 08:00:01 3 34.51 0.00 1.30 0.13 0.10 63.95 08:54:24 08:01:01 all 17.20 0.00 0.51 0.14 0.09 82.07 08:54:24 08:01:01 0 17.33 0.00 0.48 0.15 0.08 81.95 08:54:24 08:01:01 1 16.55 0.00 0.42 0.12 0.07 82.85 08:54:24 08:01:01 2 17.66 0.00 0.50 0.28 0.10 81.46 08:54:24 08:01:01 3 17.24 0.00 0.63 0.00 0.10 82.02 08:54:24 08:02:01 all 3.15 0.00 0.29 0.02 0.08 96.47 08:54:24 08:02:01 0 3.01 0.00 0.25 0.00 0.07 96.67 08:54:24 08:02:01 1 3.28 0.00 0.35 0.00 0.10 96.27 08:54:24 08:02:01 2 3.40 0.00 0.33 0.07 0.08 96.12 08:54:24 08:02:01 3 2.89 0.00 0.22 0.00 0.08 96.81 08:54:24 08:54:24 08:02:01 CPU %user %nice %system %iowait %steal %idle 08:54:24 08:03:01 all 2.51 0.00 0.28 0.50 0.08 96.64 08:54:24 08:03:01 0 2.04 0.00 0.28 0.60 0.07 97.00 08:54:24 08:03:01 1 2.65 0.00 0.30 0.43 0.07 96.54 08:54:24 08:03:01 2 3.12 0.00 0.32 0.75 0.10 95.71 08:54:24 08:03:01 3 2.22 0.00 0.20 0.20 0.07 97.31 08:54:24 08:04:01 all 2.41 0.00 0.26 4.93 0.09 92.30 08:54:24 08:04:01 0 2.43 0.00 0.32 6.75 0.08 90.41 08:54:24 08:04:01 1 2.59 0.00 0.33 0.00 0.10 96.97 08:54:24 08:04:01 2 2.29 0.00 0.22 10.05 0.10 87.35 08:54:24 08:04:01 3 2.35 0.00 0.18 2.93 0.07 94.47 08:54:24 08:05:01 all 2.42 0.00 0.27 0.03 0.08 97.20 08:54:24 08:05:01 0 3.53 0.00 0.26 0.07 0.08 96.06 08:54:24 08:05:01 1 2.12 0.00 0.30 0.00 0.08 97.50 08:54:24 08:05:01 2 1.98 0.00 0.28 0.05 0.08 97.60 08:54:24 08:05:01 3 2.03 0.00 0.23 0.00 0.08 97.65 08:54:24 08:06:01 all 1.54 0.00 0.24 0.07 0.06 98.09 08:54:24 08:06:01 0 2.14 0.00 0.33 0.15 0.07 97.31 08:54:24 08:06:01 1 1.35 0.00 0.22 0.00 0.07 98.37 08:54:24 08:06:01 2 1.32 0.00 0.30 0.12 0.07 98.20 08:54:24 08:06:01 3 1.35 0.00 0.12 0.00 0.03 98.50 08:54:24 08:07:01 all 1.86 0.00 0.29 0.08 0.07 97.70 08:54:24 08:07:01 0 1.41 0.00 0.22 0.12 0.07 98.19 08:54:24 08:07:01 1 1.81 0.00 0.33 0.00 0.08 97.78 08:54:24 08:07:01 2 1.98 0.00 0.35 0.22 0.07 97.38 08:54:24 08:07:01 3 2.22 0.00 0.27 0.00 0.07 97.45 08:54:24 08:08:01 all 1.73 0.00 0.31 0.05 0.08 97.83 08:54:24 08:08:01 0 1.69 0.00 0.27 0.12 0.08 97.84 08:54:24 08:08:01 1 1.27 0.00 0.27 0.03 0.08 98.35 08:54:24 08:08:01 2 2.44 0.00 0.45 0.05 0.08 96.97 08:54:24 08:08:01 3 1.53 0.00 0.25 0.00 0.05 98.16 08:54:24 08:09:01 all 0.33 0.00 0.18 0.01 0.07 99.41 08:54:24 08:09:01 0 0.44 0.00 0.24 0.00 0.07 99.26 08:54:24 08:09:01 1 0.35 0.00 0.22 0.00 0.07 99.37 08:54:24 08:09:01 2 0.32 0.00 0.17 0.02 0.08 99.41 08:54:24 08:09:01 3 0.20 0.00 0.10 0.02 0.07 99.62 08:54:24 08:10:01 all 0.37 0.00 0.19 0.01 0.08 99.36 08:54:24 08:10:01 0 0.27 0.00 0.15 0.00 0.08 99.50 08:54:24 08:10:01 1 0.35 0.00 0.17 0.00 0.07 99.42 08:54:24 08:10:01 2 0.62 0.00 0.32 0.02 0.10 98.95 08:54:24 08:10:01 3 0.23 0.00 0.12 0.02 0.07 99.57 08:54:24 08:11:01 all 26.39 0.00 1.08 1.85 0.08 70.60 08:54:24 08:11:01 0 26.55 0.00 1.12 0.02 0.08 72.23 08:54:24 08:11:01 1 26.05 0.00 1.09 1.95 0.08 70.83 08:54:24 08:11:01 2 28.14 0.00 1.12 1.96 0.10 68.68 08:54:24 08:11:01 3 24.82 0.00 0.97 3.46 0.07 70.68 08:54:24 08:12:01 all 26.97 0.00 0.82 1.08 0.10 71.04 08:54:24 08:12:01 0 25.43 0.00 0.71 0.02 0.10 73.74 08:54:24 08:12:01 1 27.16 0.00 1.07 0.45 0.12 71.20 08:54:24 08:12:01 2 27.85 0.00 0.77 3.83 0.07 67.49 08:54:24 08:12:01 3 27.45 0.00 0.72 0.02 0.10 71.71 08:54:24 08:13:01 all 5.25 0.00 0.36 0.02 0.10 94.27 08:54:24 08:13:01 0 5.20 0.00 0.32 0.03 0.12 94.34 08:54:24 08:13:01 1 5.07 0.00 0.30 0.00 0.08 94.55 08:54:24 08:13:01 2 5.43 0.00 0.52 0.03 0.12 93.90 08:54:24 08:13:01 3 5.30 0.00 0.32 0.00 0.08 94.30 08:54:24 08:54:24 08:13:01 CPU %user %nice %system %iowait %steal %idle 08:54:24 08:14:01 all 3.75 0.00 0.34 0.01 0.09 95.82 08:54:24 08:14:01 0 3.30 0.00 0.34 0.02 0.08 96.26 08:54:24 08:14:01 1 3.92 0.00 0.40 0.00 0.08 95.60 08:54:24 08:14:01 2 3.44 0.00 0.23 0.02 0.10 96.21 08:54:24 08:14:01 3 4.32 0.00 0.40 0.00 0.08 95.20 08:54:24 08:15:01 all 2.12 0.00 0.26 0.01 0.09 97.51 08:54:24 08:15:01 0 2.49 0.00 0.37 0.02 0.08 97.04 08:54:24 08:15:01 1 2.13 0.00 0.20 0.00 0.10 97.57 08:54:24 08:15:01 2 1.75 0.00 0.25 0.03 0.08 97.88 08:54:24 08:15:01 3 2.12 0.00 0.23 0.00 0.08 97.56 08:54:24 08:16:01 all 2.67 0.00 0.32 0.01 0.07 96.92 08:54:24 08:16:01 0 3.75 0.00 0.31 0.02 0.07 95.85 08:54:24 08:16:01 1 2.54 0.00 0.22 0.00 0.07 97.18 08:54:24 08:16:01 2 2.03 0.00 0.38 0.02 0.08 97.48 08:54:24 08:16:01 3 2.37 0.00 0.37 0.00 0.08 97.18 08:54:24 08:17:01 all 2.25 0.00 0.29 0.38 0.08 97.00 08:54:24 08:17:01 0 2.21 0.00 0.33 0.03 0.08 97.34 08:54:24 08:17:01 1 2.16 0.00 0.27 0.00 0.08 97.49 08:54:24 08:17:01 2 2.62 0.00 0.38 1.47 0.08 95.45 08:54:24 08:17:01 3 2.02 0.00 0.18 0.00 0.07 97.72 08:54:24 08:18:01 all 4.30 0.00 0.41 0.06 0.10 95.13 08:54:24 08:18:01 0 4.15 0.00 0.38 0.12 0.10 95.25 08:54:24 08:18:01 1 4.09 0.00 0.39 0.00 0.12 95.41 08:54:24 08:18:01 2 4.95 0.00 0.50 0.12 0.08 94.36 08:54:24 08:18:01 3 4.00 0.00 0.37 0.00 0.10 95.53 08:54:24 08:19:01 all 54.32 0.00 1.64 0.34 0.11 43.60 08:54:24 08:19:01 0 55.17 0.00 2.07 1.28 0.12 41.37 08:54:24 08:19:01 1 53.12 0.00 1.59 0.02 0.10 45.17 08:54:24 08:19:01 2 54.47 0.00 1.22 0.05 0.12 44.15 08:54:24 08:19:01 3 54.50 0.00 1.68 0.02 0.10 43.70 08:54:24 08:20:01 all 10.52 0.00 0.28 0.03 0.10 89.06 08:54:24 08:20:01 0 11.01 0.00 0.37 0.03 0.10 88.49 08:54:24 08:20:01 1 11.11 0.00 0.37 0.00 0.08 88.44 08:54:24 08:20:01 2 10.44 0.00 0.18 0.05 0.12 89.21 08:54:24 08:20:01 3 9.53 0.00 0.22 0.03 0.10 90.12 08:54:24 08:21:01 all 7.76 0.00 0.23 0.02 0.10 91.90 08:54:24 08:21:01 0 7.30 0.00 0.22 0.02 0.08 92.38 08:54:24 08:21:01 1 8.34 0.00 0.20 0.00 0.10 91.36 08:54:24 08:21:01 2 7.32 0.00 0.25 0.02 0.10 92.31 08:54:24 08:21:01 3 8.08 0.00 0.23 0.03 0.10 91.55 08:54:24 08:22:01 all 5.17 0.00 0.20 0.01 0.09 94.53 08:54:24 08:22:01 0 6.02 0.00 0.22 0.02 0.08 93.66 08:54:24 08:22:01 1 4.58 0.00 0.23 0.00 0.08 95.11 08:54:24 08:22:01 2 4.97 0.00 0.15 0.00 0.10 94.78 08:54:24 08:22:01 3 5.11 0.00 0.18 0.03 0.08 94.59 08:54:24 08:23:01 all 2.88 0.00 0.19 0.02 0.10 96.81 08:54:24 08:23:01 0 2.97 0.00 0.13 0.03 0.10 96.77 08:54:24 08:23:01 1 3.09 0.00 0.25 0.00 0.10 96.55 08:54:24 08:23:01 2 2.57 0.00 0.17 0.03 0.07 97.16 08:54:24 08:23:01 3 2.89 0.00 0.22 0.02 0.12 96.75 08:54:24 08:24:01 all 2.69 0.00 0.22 0.01 0.09 96.99 08:54:24 08:24:01 0 2.59 0.00 0.27 0.00 0.10 97.04 08:54:24 08:24:01 1 2.55 0.00 0.20 0.00 0.10 97.15 08:54:24 08:24:01 2 2.80 0.00 0.15 0.00 0.08 96.97 08:54:24 08:24:01 3 2.84 0.00 0.25 0.03 0.08 96.79 08:54:24 08:54:24 08:24:01 CPU %user %nice %system %iowait %steal %idle 08:54:24 08:25:01 all 2.05 0.00 0.16 0.01 0.09 97.69 08:54:24 08:25:01 0 2.13 0.00 0.17 0.00 0.08 97.62 08:54:24 08:25:01 1 1.96 0.00 0.18 0.00 0.12 97.74 08:54:24 08:25:01 2 2.14 0.00 0.17 0.00 0.08 97.61 08:54:24 08:25:01 3 1.98 0.00 0.13 0.03 0.07 97.79 08:54:24 08:26:01 all 1.90 0.00 0.18 0.01 0.08 97.83 08:54:24 08:26:01 0 1.97 0.00 0.20 0.00 0.07 97.76 08:54:24 08:26:01 1 2.03 0.00 0.23 0.02 0.08 97.64 08:54:24 08:26:01 2 1.79 0.00 0.15 0.00 0.08 97.97 08:54:24 08:26:01 3 1.82 0.00 0.15 0.02 0.08 97.93 08:54:24 08:27:01 all 0.48 0.00 0.12 0.01 0.08 99.31 08:54:24 08:27:01 0 0.23 0.00 0.12 0.00 0.07 99.58 08:54:24 08:27:01 1 0.54 0.00 0.15 0.02 0.08 99.21 08:54:24 08:27:01 2 0.35 0.00 0.15 0.00 0.08 99.41 08:54:24 08:27:01 3 0.82 0.00 0.05 0.02 0.08 99.03 08:54:24 08:28:01 all 0.23 0.00 0.11 0.10 0.08 99.48 08:54:24 08:28:01 0 0.20 0.00 0.13 0.02 0.12 99.53 08:54:24 08:28:01 1 0.40 0.00 0.10 0.03 0.07 99.40 08:54:24 08:28:01 2 0.13 0.00 0.07 0.00 0.03 99.77 08:54:24 08:28:01 3 0.18 0.00 0.15 0.34 0.10 99.23 08:54:24 08:29:01 all 0.41 0.00 0.10 0.01 0.09 99.39 08:54:24 08:29:01 0 0.27 0.00 0.07 0.00 0.08 99.58 08:54:24 08:29:01 1 0.32 0.00 0.10 0.02 0.10 99.46 08:54:24 08:29:01 2 0.27 0.00 0.17 0.00 0.10 99.46 08:54:24 08:29:01 3 0.77 0.00 0.07 0.02 0.08 99.07 08:54:24 08:30:01 all 47.43 0.00 1.63 0.03 0.12 50.80 08:54:24 08:30:01 0 50.07 0.00 2.12 0.03 0.10 47.68 08:54:24 08:30:01 1 50.46 0.00 1.59 0.00 0.12 47.83 08:54:24 08:30:01 2 47.26 0.00 1.56 0.00 0.13 51.05 08:54:24 08:30:01 3 42.01 0.00 1.24 0.07 0.12 56.57 08:54:24 08:31:01 all 16.04 0.00 0.56 0.43 0.10 82.87 08:54:24 08:31:01 0 16.10 0.00 0.55 0.02 0.10 83.23 08:54:24 08:31:01 1 16.20 0.00 0.45 0.05 0.10 83.20 08:54:24 08:31:01 2 15.29 0.00 0.53 0.20 0.10 83.88 08:54:24 08:31:01 3 16.57 0.00 0.72 1.45 0.10 81.17 08:54:24 08:32:01 all 11.10 0.00 0.48 2.56 0.09 85.77 08:54:24 08:32:01 0 11.30 0.00 0.47 0.00 0.10 88.14 08:54:24 08:32:01 1 11.07 0.00 0.40 0.00 0.08 88.44 08:54:24 08:32:01 2 11.36 0.00 0.48 0.00 0.08 88.08 08:54:24 08:32:01 3 10.67 0.00 0.55 10.25 0.10 78.43 08:54:24 08:33:01 all 2.95 0.00 0.26 0.03 0.11 96.65 08:54:24 08:33:01 0 3.24 0.00 0.42 0.05 0.13 96.16 08:54:24 08:33:01 1 2.84 0.00 0.13 0.02 0.08 96.93 08:54:24 08:33:01 2 2.69 0.00 0.18 0.00 0.08 97.04 08:54:24 08:33:01 3 3.04 0.00 0.30 0.07 0.13 96.46 08:54:24 08:34:01 all 2.36 0.00 0.28 0.05 0.09 97.22 08:54:24 08:34:01 0 2.76 0.00 0.32 0.02 0.10 96.81 08:54:24 08:34:01 1 2.04 0.00 0.17 0.02 0.07 97.71 08:54:24 08:34:01 2 2.45 0.00 0.35 0.02 0.10 97.09 08:54:24 08:34:01 3 2.22 0.00 0.27 0.13 0.10 97.28 08:54:24 08:35:01 all 2.14 0.00 0.30 0.02 0.09 97.46 08:54:24 08:35:01 0 2.20 0.00 0.35 0.03 0.10 97.31 08:54:24 08:35:01 1 2.40 0.00 0.35 0.00 0.08 97.17 08:54:24 08:35:01 2 1.83 0.00 0.22 0.00 0.08 97.87 08:54:24 08:35:01 3 2.12 0.00 0.28 0.03 0.08 97.48 08:54:24 08:54:24 08:35:01 CPU %user %nice %system %iowait %steal %idle 08:54:24 08:36:01 all 1.86 0.00 0.26 0.01 0.07 97.80 08:54:24 08:36:01 0 1.93 0.00 0.42 0.02 0.08 97.55 08:54:24 08:36:01 1 2.21 0.00 0.18 0.00 0.08 97.52 08:54:24 08:36:01 2 1.90 0.00 0.22 0.00 0.05 97.83 08:54:24 08:36:01 3 1.38 0.00 0.22 0.03 0.07 98.30 08:54:24 08:37:01 all 1.99 0.00 0.31 0.01 0.08 97.61 08:54:24 08:37:01 0 1.93 0.00 0.52 0.02 0.10 97.43 08:54:24 08:37:01 1 2.42 0.00 0.15 0.00 0.08 97.35 08:54:24 08:37:01 2 1.85 0.00 0.28 0.00 0.07 97.80 08:54:24 08:37:01 3 1.74 0.00 0.30 0.02 0.08 97.86 08:54:24 08:38:01 all 1.37 0.00 0.25 0.01 0.07 98.30 08:54:24 08:38:01 0 1.53 0.00 0.25 0.03 0.08 98.10 08:54:24 08:38:01 1 1.37 0.00 0.20 0.00 0.05 98.38 08:54:24 08:38:01 2 1.27 0.00 0.27 0.00 0.08 98.37 08:54:24 08:38:01 3 1.29 0.00 0.30 0.02 0.07 98.33 08:54:24 08:39:01 all 3.41 0.00 0.34 0.06 0.09 96.10 08:54:24 08:39:01 0 3.11 0.00 0.30 0.13 0.08 96.37 08:54:24 08:39:01 1 3.00 0.00 0.48 0.10 0.10 96.31 08:54:24 08:39:01 2 4.51 0.00 0.26 0.00 0.07 95.16 08:54:24 08:39:01 3 3.02 0.00 0.30 0.00 0.10 96.58 08:54:24 08:40:01 all 43.01 0.00 2.32 1.15 0.38 53.13 08:54:24 08:40:01 0 44.22 0.00 1.58 0.99 0.12 53.10 08:54:24 08:40:01 1 41.50 0.00 1.53 2.62 1.19 53.16 08:54:24 08:40:01 2 40.87 0.00 3.80 0.27 0.12 54.95 08:54:24 08:40:01 3 45.50 0.00 2.38 0.70 0.10 51.32 08:54:24 08:41:01 all 19.56 0.00 0.73 0.61 0.10 79.00 08:54:24 08:41:01 0 19.83 0.00 0.72 1.35 0.10 78.00 08:54:24 08:41:01 1 18.83 0.00 0.74 0.02 0.08 80.33 08:54:24 08:41:01 2 19.26 0.00 0.74 0.67 0.12 79.22 08:54:24 08:41:01 3 20.33 0.00 0.72 0.38 0.10 78.47 08:54:24 08:42:01 all 12.69 0.00 0.72 0.03 0.10 86.46 08:54:24 08:42:01 0 13.38 0.00 0.62 0.02 0.10 85.88 08:54:24 08:42:01 1 12.84 0.00 0.79 0.00 0.12 86.26 08:54:24 08:42:01 2 11.57 0.00 0.67 0.08 0.08 87.60 08:54:24 08:42:01 3 12.97 0.00 0.80 0.03 0.10 86.10 08:54:24 08:43:01 all 46.05 0.00 1.16 0.26 0.13 52.41 08:54:24 08:43:01 0 46.91 0.00 1.07 0.70 0.13 51.19 08:54:24 08:43:01 1 48.25 0.00 1.00 0.03 0.13 50.58 08:54:24 08:43:01 2 41.66 0.00 1.39 0.07 0.12 56.77 08:54:24 08:43:01 3 47.36 0.00 1.19 0.22 0.12 51.11 08:54:24 08:44:01 all 2.75 0.00 0.16 0.01 0.10 96.98 08:54:24 08:44:01 0 2.71 0.00 0.13 0.02 0.10 97.04 08:54:24 08:44:01 1 2.92 0.00 0.13 0.03 0.10 96.82 08:54:24 08:44:01 2 2.34 0.00 0.13 0.00 0.08 97.44 08:54:24 08:44:01 3 3.02 0.00 0.23 0.00 0.12 96.63 08:54:24 08:45:01 all 2.89 0.00 0.16 0.00 0.10 96.84 08:54:24 08:45:01 0 2.64 0.00 0.13 0.02 0.08 97.13 08:54:24 08:45:01 1 2.63 0.00 0.17 0.00 0.13 97.07 08:54:24 08:45:01 2 2.16 0.00 0.18 0.00 0.10 97.56 08:54:24 08:45:01 3 4.12 0.00 0.15 0.00 0.10 95.63 08:54:24 08:46:01 all 2.01 0.00 0.16 0.01 0.08 97.73 08:54:24 08:46:01 0 1.69 0.00 0.18 0.03 0.10 97.99 08:54:24 08:46:01 1 1.47 0.00 0.15 0.00 0.07 98.31 08:54:24 08:46:01 2 1.64 0.00 0.08 0.02 0.08 98.18 08:54:24 08:46:01 3 3.23 0.00 0.21 0.00 0.08 96.47 08:54:24 08:54:24 08:46:01 CPU %user %nice %system %iowait %steal %idle 08:54:24 08:47:01 all 3.97 0.00 0.24 0.10 0.08 95.61 08:54:24 08:47:01 0 3.86 0.00 0.12 0.40 0.07 95.56 08:54:24 08:47:01 1 3.93 0.00 0.29 0.00 0.10 95.68 08:54:24 08:47:01 2 3.96 0.00 0.25 0.00 0.08 95.71 08:54:24 08:47:01 3 4.11 0.00 0.32 0.00 0.08 95.49 08:54:24 08:48:01 all 1.63 0.00 0.20 0.03 0.08 98.06 08:54:24 08:48:01 0 1.56 0.00 0.28 0.10 0.08 97.97 08:54:24 08:48:01 1 1.49 0.00 0.18 0.00 0.08 98.24 08:54:24 08:48:01 2 1.52 0.00 0.18 0.00 0.05 98.24 08:54:24 08:48:01 3 1.94 0.00 0.15 0.02 0.10 97.79 08:54:24 08:49:01 all 2.61 0.00 0.27 0.03 0.08 97.01 08:54:24 08:49:01 0 2.43 0.00 0.22 0.13 0.08 97.13 08:54:24 08:49:01 1 2.56 0.00 0.23 0.00 0.08 97.12 08:54:24 08:49:01 2 2.69 0.00 0.30 0.00 0.07 96.94 08:54:24 08:49:01 3 2.75 0.00 0.33 0.00 0.07 96.85 08:54:24 08:50:01 all 56.49 0.00 1.69 0.32 0.11 41.38 08:54:24 08:50:01 0 57.84 0.00 1.71 0.70 0.12 39.63 08:54:24 08:50:01 1 53.61 0.00 1.77 0.05 0.10 44.47 08:54:24 08:50:01 2 55.43 0.00 1.38 0.03 0.12 43.04 08:54:24 08:50:01 3 59.05 0.00 1.91 0.50 0.12 38.41 08:54:24 08:51:01 all 9.79 0.00 0.36 0.04 0.09 89.71 08:54:24 08:51:01 0 9.92 0.00 0.37 0.03 0.08 89.60 08:54:24 08:51:01 1 10.12 0.00 0.45 0.13 0.10 89.20 08:54:24 08:51:01 2 9.39 0.00 0.42 0.00 0.10 90.09 08:54:24 08:51:01 3 9.75 0.00 0.22 0.00 0.07 89.97 08:54:24 08:52:01 all 9.95 0.00 0.33 0.02 0.09 89.61 08:54:24 08:52:01 0 9.85 0.00 0.33 0.03 0.08 89.69 08:54:24 08:52:01 1 9.87 0.00 0.35 0.03 0.10 89.65 08:54:24 08:52:01 2 10.10 0.00 0.30 0.00 0.08 89.52 08:54:24 08:52:01 3 9.96 0.00 0.35 0.00 0.10 89.58 08:54:24 08:53:01 all 5.14 0.00 0.28 0.02 0.09 94.47 08:54:24 08:53:01 0 5.80 0.00 0.35 0.03 0.08 93.74 08:54:24 08:53:01 1 5.28 0.00 0.27 0.05 0.10 94.30 08:54:24 08:53:01 2 4.49 0.00 0.32 0.00 0.10 95.09 08:54:24 08:53:01 3 4.97 0.00 0.18 0.00 0.08 94.76 08:54:24 08:54:01 all 22.29 0.00 1.30 0.69 0.09 75.63 08:54:24 08:54:01 0 26.23 0.00 1.71 1.27 0.08 70.71 08:54:24 08:54:01 1 19.93 0.00 1.46 0.18 0.08 78.35 08:54:24 08:54:01 2 24.93 0.00 1.00 0.28 0.08 73.70 08:54:24 08:54:01 3 18.10 0.00 1.04 1.02 0.10 79.75 08:54:24 Average: all 18.33 0.08 0.87 0.47 0.10 80.15 08:54:24 Average: 0 18.12 0.09 0.90 0.46 0.10 80.34 08:54:24 Average: 1 18.71 0.08 0.87 0.26 0.11 79.98 08:54:24 Average: 2 18.30 0.07 0.86 0.63 0.10 80.03 08:54:24 Average: 3 18.20 0.08 0.85 0.54 0.09 80.23 08:54:24 08:54:24 08:54:24