08:47:09 Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/transportpce/+/114581 08:47:09 Running as SYSTEM 08:47:09 [EnvInject] - Loading node environment variables. 08:47:09 Building remotely on prd-ubuntu2004-docker-4c-16g-11399 (ubuntu2004-docker-4c-16g) in workspace /w/workspace/transportpce-tox-verify-transportpce-master 08:47:09 [ssh-agent] Looking for ssh-agent implementation... 08:47:09 [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) 08:47:09 $ ssh-agent 08:47:09 SSH_AUTH_SOCK=/tmp/ssh-OvyJvalY9mWd/agent.12994 08:47:09 SSH_AGENT_PID=12997 08:47:09 [ssh-agent] Started. 08:47:09 Running ssh-add (command line suppressed) 08:47:09 Identity added: /w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_11544857198271751647.key (/w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_11544857198271751647.key) 08:47:09 [ssh-agent] Using credentials jenkins (jenkins-ssh) 08:47:09 The recommended git tool is: NONE 08:47:12 using credential jenkins-ssh 08:47:12 Wiping out workspace first. 08:47:12 Cloning the remote Git repository 08:47:12 Cloning repository git://devvexx.opendaylight.org/mirror/transportpce 08:47:12 > git init /w/workspace/transportpce-tox-verify-transportpce-master # timeout=10 08:47:12 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 08:47:12 > git --version # timeout=10 08:47:12 > git --version # 'git version 2.25.1' 08:47:12 using GIT_SSH to set credentials jenkins-ssh 08:47:12 Verifying host key using known hosts file 08:47:12 You're using 'Known hosts file' strategy to verify ssh host keys, but your known_hosts file does not exist, please go to 'Manage Jenkins' -> 'Security' -> 'Git Host Key Verification Configuration' and configure host key verification. 08:47:12 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce +refs/heads/*:refs/remotes/origin/* # timeout=10 08:47:15 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 08:47:15 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 08:47:16 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 08:47:16 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 08:47:16 using GIT_SSH to set credentials jenkins-ssh 08:47:16 Verifying host key using known hosts file 08:47:16 You're using 'Known hosts file' strategy to verify ssh host keys, but your known_hosts file does not exist, please go to 'Manage Jenkins' -> 'Security' -> 'Git Host Key Verification Configuration' and configure host key verification. 08:47:16 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce refs/changes/81/114581/2 # timeout=10 08:47:16 > git rev-parse 4c8673f59ecc73cb2e4cc7fa6a4c2101bd65408b^{commit} # timeout=10 08:47:16 JENKINS-19022: warning: possible memory leak due to Git plugin usage; see: https://plugins.jenkins.io/git/#remove-git-plugin-buildsbybranch-builddata-script 08:47:16 Checking out Revision 4c8673f59ecc73cb2e4cc7fa6a4c2101bd65408b (refs/changes/81/114581/2) 08:47:16 > git config core.sparsecheckout # timeout=10 08:47:16 > git checkout -f 4c8673f59ecc73cb2e4cc7fa6a4c2101bd65408b # timeout=10 08:47:16 Commit message: "Enhancements for discovering OpenConfig XPDRs." 08:47:16 > git rev-parse FETCH_HEAD^{commit} # timeout=10 08:47:16 > git rev-list --no-walk 14a38aa83db06d38e73ac00c316ac3db70ebc64f # timeout=10 08:47:16 > git remote # timeout=10 08:47:16 > git submodule init # timeout=10 08:47:16 > git submodule sync # timeout=10 08:47:16 > git config --get remote.origin.url # timeout=10 08:47:16 > git submodule init # timeout=10 08:47:16 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 08:47:16 ERROR: No submodules found. 08:47:20 provisioning config files... 08:47:20 copy managed file [npmrc] to file:/home/jenkins/.npmrc 08:47:20 copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf 08:47:20 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins15122249136482397661.sh 08:47:20 ---> python-tools-install.sh 08:47:20 Setup pyenv: 08:47:20 * system (set by /opt/pyenv/version) 08:47:20 * 3.8.20 (set by /opt/pyenv/version) 08:47:20 * 3.9.20 (set by /opt/pyenv/version) 08:47:20 * 3.10.15 (set by /opt/pyenv/version) 08:47:20 * 3.11.10 (set by /opt/pyenv/version) 08:47:25 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-LvpY 08:47:25 lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv 08:47:28 lf-activate-venv(): INFO: Installing: lftools 08:47:57 lf-activate-venv(): INFO: Adding /tmp/venv-LvpY/bin to PATH 08:47:57 Generating Requirements File 08:48:19 Python 3.11.10 08:48:19 pip 24.3.1 from /tmp/venv-LvpY/lib/python3.11/site-packages/pip (python 3.11) 08:48:19 appdirs==1.4.4 08:48:19 argcomplete==3.5.1 08:48:19 aspy.yaml==1.3.0 08:48:19 attrs==24.2.0 08:48:19 autopage==0.5.2 08:48:19 beautifulsoup4==4.12.3 08:48:19 boto3==1.35.71 08:48:19 botocore==1.35.71 08:48:19 bs4==0.0.2 08:48:19 cachetools==5.5.0 08:48:19 certifi==2024.8.30 08:48:19 cffi==1.17.1 08:48:19 cfgv==3.4.0 08:48:19 chardet==5.2.0 08:48:19 charset-normalizer==3.4.0 08:48:19 click==8.1.7 08:48:19 cliff==4.8.0 08:48:19 cmd2==2.5.7 08:48:19 cryptography==3.3.2 08:48:19 debtcollector==3.0.0 08:48:19 decorator==5.1.1 08:48:19 defusedxml==0.7.1 08:48:19 Deprecated==1.2.15 08:48:19 distlib==0.3.9 08:48:19 dnspython==2.7.0 08:48:19 docker==4.2.2 08:48:19 dogpile.cache==1.3.3 08:48:19 durationpy==0.9 08:48:19 email_validator==2.2.0 08:48:19 filelock==3.16.1 08:48:19 future==1.0.0 08:48:19 gitdb==4.0.11 08:48:19 GitPython==3.1.43 08:48:19 google-auth==2.36.0 08:48:19 httplib2==0.22.0 08:48:19 identify==2.6.3 08:48:19 idna==3.10 08:48:19 importlib-resources==1.5.0 08:48:19 iso8601==2.1.0 08:48:19 Jinja2==3.1.4 08:48:19 jmespath==1.0.1 08:48:19 jsonpatch==1.33 08:48:19 jsonpointer==3.0.0 08:48:19 jsonschema==4.23.0 08:48:19 jsonschema-specifications==2024.10.1 08:48:19 keystoneauth1==5.9.1 08:48:19 kubernetes==31.0.0 08:48:19 lftools==0.37.10 08:48:19 lxml==5.3.0 08:48:19 MarkupSafe==3.0.2 08:48:19 msgpack==1.1.0 08:48:19 multi_key_dict==2.0.3 08:48:19 munch==4.0.0 08:48:19 netaddr==1.3.0 08:48:19 netifaces==0.11.0 08:48:19 niet==1.4.2 08:48:19 nodeenv==1.9.1 08:48:19 oauth2client==4.1.3 08:48:19 oauthlib==3.2.2 08:48:19 openstacksdk==4.1.0 08:48:19 os-client-config==2.1.0 08:48:19 os-service-types==1.7.0 08:48:19 osc-lib==3.2.0 08:48:19 oslo.config==9.7.0 08:48:19 oslo.context==5.7.0 08:48:19 oslo.i18n==6.5.0 08:48:19 oslo.log==6.2.0 08:48:19 oslo.serialization==5.6.0 08:48:19 oslo.utils==7.4.0 08:48:19 packaging==24.2 08:48:19 pbr==6.1.0 08:48:19 platformdirs==4.3.6 08:48:19 prettytable==3.12.0 08:48:19 psutil==6.1.0 08:48:19 pyasn1==0.6.1 08:48:19 pyasn1_modules==0.4.1 08:48:19 pycparser==2.22 08:48:19 pygerrit2==2.0.15 08:48:19 PyGithub==2.5.0 08:48:19 PyJWT==2.10.1 08:48:19 PyNaCl==1.5.0 08:48:19 pyparsing==2.4.7 08:48:19 pyperclip==1.9.0 08:48:19 pyrsistent==0.20.0 08:48:19 python-cinderclient==9.6.0 08:48:19 python-dateutil==2.9.0.post0 08:48:19 python-heatclient==4.0.0 08:48:19 python-jenkins==1.8.2 08:48:19 python-keystoneclient==5.5.0 08:48:19 python-magnumclient==4.7.0 08:48:19 python-openstackclient==7.2.1 08:48:19 python-swiftclient==4.6.0 08:48:19 PyYAML==6.0.2 08:48:19 referencing==0.35.1 08:48:19 requests==2.32.3 08:48:19 requests-oauthlib==2.0.0 08:48:19 requestsexceptions==1.4.0 08:48:19 rfc3986==2.0.0 08:48:19 rpds-py==0.21.0 08:48:19 rsa==4.9 08:48:19 ruamel.yaml==0.18.6 08:48:19 ruamel.yaml.clib==0.2.12 08:48:19 s3transfer==0.10.4 08:48:19 simplejson==3.19.3 08:48:19 six==1.16.0 08:48:19 smmap==5.0.1 08:48:19 soupsieve==2.6 08:48:19 stevedore==5.4.0 08:48:19 tabulate==0.9.0 08:48:19 toml==0.10.2 08:48:19 tomlkit==0.13.2 08:48:19 tqdm==4.67.1 08:48:19 typing_extensions==4.12.2 08:48:19 tzdata==2024.2 08:48:19 urllib3==1.26.20 08:48:19 virtualenv==20.28.0 08:48:19 wcwidth==0.2.13 08:48:19 websocket-client==1.8.0 08:48:19 wrapt==1.17.0 08:48:19 xdg==6.0.0 08:48:19 xmltodict==0.14.2 08:48:19 yq==3.4.3 08:48:19 [EnvInject] - Injecting environment variables from a build step. 08:48:19 [EnvInject] - Injecting as environment variables the properties content 08:48:19 PYTHON=python3 08:48:19 08:48:19 [EnvInject] - Variables injected successfully. 08:48:19 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins4784999262933040037.sh 08:48:19 ---> tox-install.sh 08:48:19 + source /home/jenkins/lf-env.sh 08:48:19 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 08:48:19 ++ mktemp -d /tmp/venv-XXXX 08:48:19 + lf_venv=/tmp/venv-bx7u 08:48:19 + local venv_file=/tmp/.os_lf_venv 08:48:19 + local python=python3 08:48:19 + local options 08:48:19 + local set_path=true 08:48:19 + local install_args= 08:48:19 ++ 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 08:48:19 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 08:48:19 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 08:48:19 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 08:48:19 + true 08:48:19 + case $1 in 08:48:19 + venv_file=/tmp/.toxenv 08:48:19 + shift 2 08:48:19 + true 08:48:19 + case $1 in 08:48:19 + shift 08:48:19 + break 08:48:19 + case $python in 08:48:19 + local pkg_list= 08:48:19 + [[ -d /opt/pyenv ]] 08:48:19 + echo 'Setup pyenv:' 08:48:19 Setup pyenv: 08:48:19 + export PYENV_ROOT=/opt/pyenv 08:48:19 + PYENV_ROOT=/opt/pyenv 08:48:19 + 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 08:48:19 + 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 08:48:19 + pyenv versions 08:48:20 system 08:48:20 3.8.20 08:48:20 3.9.20 08:48:20 3.10.15 08:48:20 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 08:48:20 + command -v pyenv 08:48:20 ++ pyenv init - --no-rehash 08:48:20 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 08:48:20 for i in ${!paths[@]}; do 08:48:20 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 08:48:20 fi; done; 08:48:20 echo "${paths[*]}"'\'')" 08:48:20 export PATH="/opt/pyenv/shims:${PATH}" 08:48:20 export PYENV_SHELL=bash 08:48:20 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 08:48:20 pyenv() { 08:48:20 local command 08:48:20 command="${1:-}" 08:48:20 if [ "$#" -gt 0 ]; then 08:48:20 shift 08:48:20 fi 08:48:20 08:48:20 case "$command" in 08:48:20 rehash|shell) 08:48:20 eval "$(pyenv "sh-$command" "$@")" 08:48:20 ;; 08:48:20 *) 08:48:20 command pyenv "$command" "$@" 08:48:20 ;; 08:48:20 esac 08:48:20 }' 08:48:20 +++ bash --norc -ec 'IFS=:; paths=($PATH); 08:48:20 for i in ${!paths[@]}; do 08:48:20 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 08:48:20 fi; done; 08:48:20 echo "${paths[*]}"' 08:48:20 ++ PATH=/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 08:48:20 ++ export PATH=/opt/pyenv/shims:/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 08:48:20 ++ PATH=/opt/pyenv/shims:/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 08:48:20 ++ export PYENV_SHELL=bash 08:48:20 ++ PYENV_SHELL=bash 08:48:20 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 08:48:20 +++ complete -F _pyenv pyenv 08:48:20 ++ lf-pyver python3 08:48:20 ++ local py_version_xy=python3 08:48:20 ++ local py_version_xyz= 08:48:20 ++ pyenv versions 08:48:20 ++ sed 's/^[ *]* //' 08:48:20 ++ local command 08:48:20 ++ command=versions 08:48:20 ++ '[' 1 -gt 0 ']' 08:48:20 ++ shift 08:48:20 ++ case "$command" in 08:48:20 ++ command pyenv versions 08:48:20 ++ pyenv versions 08:48:20 ++ awk '{ print $1 }' 08:48:20 ++ grep -E '^[0-9.]*[0-9]$' 08:48:20 ++ [[ ! -s /tmp/.pyenv_versions ]] 08:48:20 +++ grep '^3' /tmp/.pyenv_versions 08:48:20 +++ sort -V 08:48:20 +++ tail -n 1 08:48:20 ++ py_version_xyz=3.11.10 08:48:20 ++ [[ -z 3.11.10 ]] 08:48:20 ++ echo 3.11.10 08:48:20 ++ return 0 08:48:20 + pyenv local 3.11.10 08:48:20 + local command 08:48:20 + command=local 08:48:20 + '[' 2 -gt 0 ']' 08:48:20 + shift 08:48:20 + case "$command" in 08:48:20 + command pyenv local 3.11.10 08:48:20 + pyenv local 3.11.10 08:48:20 + for arg in "$@" 08:48:20 + case $arg in 08:48:20 + pkg_list+='tox ' 08:48:20 + for arg in "$@" 08:48:20 + case $arg in 08:48:20 + pkg_list+='virtualenv ' 08:48:20 + for arg in "$@" 08:48:20 + case $arg in 08:48:20 + pkg_list+='urllib3~=1.26.15 ' 08:48:20 + [[ -f /tmp/.toxenv ]] 08:48:20 + [[ ! -f /tmp/.toxenv ]] 08:48:20 + [[ -n '' ]] 08:48:20 + python3 -m venv /tmp/venv-bx7u 08:48:24 + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-bx7u' 08:48:24 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-bx7u 08:48:24 + echo /tmp/venv-bx7u 08:48:24 + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' 08:48:24 lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv 08:48:24 + /tmp/venv-bx7u/bin/python3 -m pip install --upgrade --quiet pip virtualenv 08:48:27 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 08:48:27 + echo 'lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 ' 08:48:27 lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 08:48:27 + /tmp/venv-bx7u/bin/python3 -m pip install --upgrade --quiet --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 08:48:29 + type python3 08:48:29 + true 08:48:29 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-bx7u/bin to PATH' 08:48:29 lf-activate-venv(): INFO: Adding /tmp/venv-bx7u/bin to PATH 08:48:29 + PATH=/tmp/venv-bx7u/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 08:48:29 + return 0 08:48:29 + python3 --version 08:48:29 Python 3.11.10 08:48:29 + python3 -m pip --version 08:48:29 pip 24.3.1 from /tmp/venv-bx7u/lib/python3.11/site-packages/pip (python 3.11) 08:48:29 + python3 -m pip freeze 08:48:29 cachetools==5.5.0 08:48:29 chardet==5.2.0 08:48:29 colorama==0.4.6 08:48:29 distlib==0.3.9 08:48:29 filelock==3.16.1 08:48:29 packaging==24.2 08:48:29 platformdirs==4.3.6 08:48:29 pluggy==1.5.0 08:48:29 pyproject-api==1.8.0 08:48:29 tox==4.23.2 08:48:29 urllib3==1.26.20 08:48:29 virtualenv==20.28.0 08:48:29 [transportpce-tox-verify-transportpce-master] $ /bin/sh -xe /tmp/jenkins16709218374341680168.sh 08:48:29 [EnvInject] - Injecting environment variables from a build step. 08:48:29 [EnvInject] - Injecting as environment variables the properties content 08:48:29 PARALLEL=True 08:48:29 08:48:29 [EnvInject] - Variables injected successfully. 08:48:29 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins17354264900059483658.sh 08:48:29 ---> tox-run.sh 08:48:29 + 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 08:48:29 + ARCHIVE_TOX_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 08:48:29 + ARCHIVE_DOC_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 08:48:29 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 08:48:29 + cd /w/workspace/transportpce-tox-verify-transportpce-master/. 08:48:29 + source /home/jenkins/lf-env.sh 08:48:29 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 08:48:29 ++ mktemp -d /tmp/venv-XXXX 08:48:29 + lf_venv=/tmp/venv-khPu 08:48:29 + local venv_file=/tmp/.os_lf_venv 08:48:29 + local python=python3 08:48:29 + local options 08:48:29 + local set_path=true 08:48:29 + local install_args= 08:48:29 ++ 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 08:48:29 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 08:48:29 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 08:48:29 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 08:48:29 + true 08:48:29 + case $1 in 08:48:29 + venv_file=/tmp/.toxenv 08:48:29 + shift 2 08:48:29 + true 08:48:29 + case $1 in 08:48:29 + shift 08:48:29 + break 08:48:29 + case $python in 08:48:29 + local pkg_list= 08:48:29 + [[ -d /opt/pyenv ]] 08:48:29 + echo 'Setup pyenv:' 08:48:29 Setup pyenv: 08:48:29 + export PYENV_ROOT=/opt/pyenv 08:48:29 + PYENV_ROOT=/opt/pyenv 08:48:29 + 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 08:48:29 + 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 08:48:29 + pyenv versions 08:48:29 system 08:48:29 3.8.20 08:48:29 3.9.20 08:48:29 3.10.15 08:48:29 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 08:48:29 + command -v pyenv 08:48:29 ++ pyenv init - --no-rehash 08:48:29 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 08:48:29 for i in ${!paths[@]}; do 08:48:29 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 08:48:29 fi; done; 08:48:29 echo "${paths[*]}"'\'')" 08:48:29 export PATH="/opt/pyenv/shims:${PATH}" 08:48:29 export PYENV_SHELL=bash 08:48:29 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 08:48:29 pyenv() { 08:48:29 local command 08:48:29 command="${1:-}" 08:48:29 if [ "$#" -gt 0 ]; then 08:48:29 shift 08:48:29 fi 08:48:29 08:48:29 case "$command" in 08:48:29 rehash|shell) 08:48:29 eval "$(pyenv "sh-$command" "$@")" 08:48:29 ;; 08:48:29 *) 08:48:29 command pyenv "$command" "$@" 08:48:29 ;; 08:48:29 esac 08:48:29 }' 08:48:29 +++ bash --norc -ec 'IFS=:; paths=($PATH); 08:48:29 for i in ${!paths[@]}; do 08:48:29 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 08:48:29 fi; done; 08:48:29 echo "${paths[*]}"' 08:48:29 ++ 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 08:48:29 ++ 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 08:48:29 ++ 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 08:48:29 ++ export PYENV_SHELL=bash 08:48:29 ++ PYENV_SHELL=bash 08:48:29 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 08:48:29 +++ complete -F _pyenv pyenv 08:48:29 ++ lf-pyver python3 08:48:29 ++ local py_version_xy=python3 08:48:29 ++ local py_version_xyz= 08:48:29 ++ pyenv versions 08:48:29 ++ local command 08:48:29 ++ command=versions 08:48:29 ++ '[' 1 -gt 0 ']' 08:48:29 ++ shift 08:48:29 ++ case "$command" in 08:48:29 ++ command pyenv versions 08:48:29 ++ pyenv versions 08:48:29 ++ sed 's/^[ *]* //' 08:48:29 ++ awk '{ print $1 }' 08:48:29 ++ grep -E '^[0-9.]*[0-9]$' 08:48:29 ++ [[ ! -s /tmp/.pyenv_versions ]] 08:48:29 +++ grep '^3' /tmp/.pyenv_versions 08:48:29 +++ sort -V 08:48:29 +++ tail -n 1 08:48:29 ++ py_version_xyz=3.11.10 08:48:29 ++ [[ -z 3.11.10 ]] 08:48:29 ++ echo 3.11.10 08:48:29 ++ return 0 08:48:29 + pyenv local 3.11.10 08:48:29 + local command 08:48:29 + command=local 08:48:29 + '[' 2 -gt 0 ']' 08:48:29 + shift 08:48:29 + case "$command" in 08:48:29 + command pyenv local 3.11.10 08:48:29 + pyenv local 3.11.10 08:48:30 + for arg in "$@" 08:48:30 + case $arg in 08:48:30 + pkg_list+='tox ' 08:48:30 + for arg in "$@" 08:48:30 + case $arg in 08:48:30 + pkg_list+='virtualenv ' 08:48:30 + for arg in "$@" 08:48:30 + case $arg in 08:48:30 + pkg_list+='urllib3~=1.26.15 ' 08:48:30 + [[ -f /tmp/.toxenv ]] 08:48:30 ++ cat /tmp/.toxenv 08:48:30 + lf_venv=/tmp/venv-bx7u 08:48:30 + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-bx7u from' file:/tmp/.toxenv 08:48:30 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-bx7u from file:/tmp/.toxenv 08:48:30 + /tmp/venv-bx7u/bin/python3 -m pip install --upgrade --quiet pip virtualenv 08:48:30 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 08:48:30 + echo 'lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 ' 08:48:30 lf-activate-venv(): INFO: Installing: tox virtualenv urllib3~=1.26.15 08:48:30 + /tmp/venv-bx7u/bin/python3 -m pip install --upgrade --quiet --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 08:48:32 + type python3 08:48:32 + true 08:48:32 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-bx7u/bin to PATH' 08:48:32 lf-activate-venv(): INFO: Adding /tmp/venv-bx7u/bin to PATH 08:48:32 + PATH=/tmp/venv-bx7u/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 08:48:32 + return 0 08:48:32 + [[ -d /opt/pyenv ]] 08:48:32 + echo '---> Setting up pyenv' 08:48:32 ---> Setting up pyenv 08:48:32 + export PYENV_ROOT=/opt/pyenv 08:48:32 + PYENV_ROOT=/opt/pyenv 08:48:32 + export PATH=/opt/pyenv/bin:/tmp/venv-bx7u/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 08:48:32 + PATH=/opt/pyenv/bin:/tmp/venv-bx7u/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 08:48:32 ++ pwd 08:48:32 + PYTHONPATH=/w/workspace/transportpce-tox-verify-transportpce-master 08:48:32 + export PYTHONPATH 08:48:32 + export TOX_TESTENV_PASSENV=PYTHONPATH 08:48:32 + TOX_TESTENV_PASSENV=PYTHONPATH 08:48:32 + tox --version 08:48:33 4.23.2 from /tmp/venv-bx7u/lib/python3.11/site-packages/tox/__init__.py 08:48:33 + PARALLEL=True 08:48:33 + TOX_OPTIONS_LIST= 08:48:33 + [[ -n '' ]] 08:48:33 + case ${PARALLEL,,} in 08:48:33 + TOX_OPTIONS_LIST=' --parallel auto --parallel-live' 08:48:33 + tox --parallel auto --parallel-live 08:48:33 + tee -a /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tox.log 08:48:35 docs: install_deps> python -I -m pip install -r docs/requirements.txt 08:48:35 docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt 08:48:35 checkbashisms: freeze> python -m pip freeze --all 08:48:35 buildcontroller: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 08:48:35 checkbashisms: pip==24.3.1,setuptools==75.6.0,wheel==0.45.1 08:48:35 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 08:48:35 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)' 08:48:35 checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + 08:48:36 script ./reflectwarn.sh does not appear to have a #! interpreter line; 08:48:36 you may get strange results 08:48:37 checkbashisms: OK ✔ in 2.89 seconds 08:48:37 pre-commit: install_deps> python -I -m pip install pre-commit 08:48:39 pre-commit: freeze> python -m pip freeze --all 08:48:39 pre-commit: cfgv==3.4.0,distlib==0.3.9,filelock==3.16.1,identify==2.6.3,nodeenv==1.9.1,pip==24.3.1,platformdirs==4.3.6,pre_commit==4.0.1,PyYAML==6.0.2,setuptools==75.6.0,virtualenv==20.28.0,wheel==0.45.1 08:48:39 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 08:48:39 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)' 08:48:39 /usr/bin/cpan 08:48:39 pre-commit: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure 08:48:39 [WARNING] hook id `remove-tabs` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 08:48:39 [WARNING] hook id `perltidy` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 08:48:39 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 08:48:40 [WARNING] repo `https://github.com/pre-commit/pre-commit-hooks` uses deprecated stage names (commit, push) which will be removed in a future version. Hint: often `pre-commit autoupdate --repo https://github.com/pre-commit/pre-commit-hooks` will fix this. if it does not -- consider reporting an issue to that repo. 08:48:40 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. 08:48:40 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. 08:48:40 [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. 08:48:41 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. 08:48:41 [INFO] Initializing environment for https://github.com/perltidy/perltidy. 08:48:42 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 08:48:42 [INFO] Once installed this environment will be reused. 08:48:42 [INFO] This may take a few minutes... 08:48:42 buildcontroller: freeze> python -m pip freeze --all 08:48:42 buildcontroller: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 08:48:42 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh 08:48:42 + update-java-alternatives -l 08:48:42 java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 08:48:42 java-1.12.0-openjdk-amd64 1211 /usr/lib/jvm/java-1.12.0-openjdk-amd64 08:48:42 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 08:48:42 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 08:48:42 java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64 08:48:42 + sudo update-java-alternatives -s java-1.21.0-openjdk-amd64 08:48:44 + sed -n ;s/.* version "\(.*\)\.\(.*\)\..*".*$/\1/p; 08:48:44 + java -version 08:48:44 + JAVA_VER=21 08:48:44 + echo 21 08:48:44 21 08:48:44 + javac -version 08:48:44 + sed -n ;s/javac \(.*\)\.\(.*\)\..*.*$/\1/p; 08:48:45 + JAVAC_VER=21 08:48:45 + echo 21 08:48:45 21 08:48:45 ok, java is 21 or newer 08:48:45 + [ 21 -ge 21 ] 08:48:45 + [ 21 -ge 21 ] 08:48:45 + echo ok, java is 21 or newer 08:48:45 + wget -nv https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz -P /tmp 08:48:45 [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. 08:48:45 [INFO] Once installed this environment will be reused. 08:48:45 [INFO] This may take a few minutes... 08:48:46 2024-11-29 08:48:46 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] 08:48:46 + sudo mkdir -p /opt 08:48:46 + sudo tar xf /tmp/apache-maven-3.9.8-bin.tar.gz -C /opt 08:48:46 + sudo ln -s /opt/apache-maven-3.9.8 /opt/maven 08:48:46 + sudo ln -s /opt/maven/bin/mvn /usr/bin/mvn 08:48:46 + mvn --version 08:48:46 Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256) 08:48:46 Maven home: /opt/maven 08:48:46 Java version: 21.0.4, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 08:48:46 Default locale: en, platform encoding: UTF-8 08:48:46 OS name: "linux", version: "5.4.0-200-generic", arch: "amd64", family: "unix" 08:48:46 NOTE: Picked up JDK_JAVA_OPTIONS: 08:48:46 --add-opens=java.base/java.io=ALL-UNNAMED 08:48:46 --add-opens=java.base/java.lang=ALL-UNNAMED 08:48:46 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 08:48:46 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 08:48:46 --add-opens=java.base/java.net=ALL-UNNAMED 08:48:46 --add-opens=java.base/java.nio=ALL-UNNAMED 08:48:46 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 08:48:46 --add-opens=java.base/java.nio.file=ALL-UNNAMED 08:48:46 --add-opens=java.base/java.util=ALL-UNNAMED 08:48:46 --add-opens=java.base/java.util.jar=ALL-UNNAMED 08:48:46 --add-opens=java.base/java.util.stream=ALL-UNNAMED 08:48:46 --add-opens=java.base/java.util.zip=ALL-UNNAMED 08:48:46 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 08:48:46 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 08:48:46 -Xlog:disable 08:48:54 [INFO] Installing environment for https://github.com/pre-commit/mirrors-autopep8. 08:48:54 [INFO] Once installed this environment will be reused. 08:48:54 [INFO] This may take a few minutes... 08:49:12 [INFO] Installing environment for https://github.com/perltidy/perltidy. 08:49:12 [INFO] Once installed this environment will be reused. 08:49:12 [INFO] This may take a few minutes... 08:49:23 trim trailing whitespace.................................................Passed 08:49:24 Tabs remover.............................................................Failed 08:49:24 - hook id: remove-tabs 08:49:24 - exit code: 1 08:49:24 - files were modified by this hook 08:49:24 08:49:24 Substituting tabs in: tests/sample_configs/openroadm/OC/sample-openconfig-mpdr.xml by 4 whitespaces 08:49:24 08:49:24 Tabs have been successfully removed. Now aborting the commit. 08:49:24 You can check the changes made. Then simply "git add --update ." and re-commit 08:49:24 08:49:24 autopep8.................................................................Failed 08:49:29 - hook id: autopep8 08:49:29 - files were modified by this hook 08:49:30 perltidy.................................................................docs-linkcheck: freeze> python -m pip freeze --all 08:49:30 Passed 08:49:30 pre-commit hook(s) made changes. 08:49:30 If you are seeing this message in CI, reproduce locally with: `pre-commit run --all-files`. 08:49:30 To run `pre-commit` as part of git workflow, use `pre-commit install`. 08:49:30 All changes made by hooks: 08:49:30 diff --git a/tests/sample_configs/openroadm/OC/sample-openconfig-mpdr.xml b/tests/sample_configs/openroadm/OC/sample-openconfig-mpdr.xml 08:49:30 index 147cc8ff..0b00d31d 100644 08:49:30 --- a/tests/sample_configs/openroadm/OC/sample-openconfig-mpdr.xml 08:49:30 +++ b/tests/sample_configs/openroadm/OC/sample-openconfig-mpdr.xml 08:49:30 @@ -12,7 +12,7 @@ 08:49:30 08:49:30 08:49:30 08:49:30 - 08:49:30 + 08:49:30 24300101 08:49:30 08:49:30 24300101 08:49:30 diff --git a/tests/transportpce_tests/OC/test01_portmapping.py b/tests/transportpce_tests/OC/test01_portmapping.py 08:49:30 index 21783e39..463a1839 100644 08:49:30 --- a/tests/transportpce_tests/OC/test01_portmapping.py 08:49:30 +++ b/tests/transportpce_tests/OC/test01_portmapping.py 08:49:30 @@ -122,7 +122,8 @@ class TransportpceOCPortMappingTesting(unittest.TestCase): 08:49:30 len(response['switching-pool-lcp'][0]['non-blocking-list'])) 08:49:30 actual_lcp_list = response['switching-pool-lcp'][0]['non-blocking-list'][0]['lcp-list'] 08:49:30 sorted_actual_lcp_list = sorted(actual_lcp_list) 08:49:30 - expected_lcp_list = sorted(['XPDR1-CLIENT4', 'XPDR1-CLIENT3', 'XPDR1-NETWORK5', 'XPDR1-CLIENT2', 'XPDR1-CLIENT1']) 08:49:30 + expected_lcp_list = sorted(['XPDR1-CLIENT4', 'XPDR1-CLIENT3', 08:49:30 + 'XPDR1-NETWORK5', 'XPDR1-CLIENT2', 'XPDR1-CLIENT1']) 08:49:30 self.assertEqual(sorted_actual_lcp_list, expected_lcp_list) 08:49:30 08:49:30 def test_09_check_mccapprofile(self): 08:49:30 @@ -137,6 +138,5 @@ class TransportpceOCPortMappingTesting(unittest.TestCase): 08:49:30 self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) 08:49:30 08:49:30 08:49:30 - 08:49:30 if __name__ == '__main__': 08:49:30 unittest.main(verbosity=2) 08:49:30 diff --git a/tests/transportpce_tests/common/test_utils.py b/tests/transportpce_tests/common/test_utils.py 08:49:30 index 40a07a09..08a543e3 100644 08:49:30 --- a/tests/transportpce_tests/common/test_utils.py 08:49:30 +++ b/tests/transportpce_tests/common/test_utils.py 08:49:30 @@ -366,6 +366,7 @@ def mount_device(node: str, sim: str): 08:49:30 # TODO an else-clause to abort test would probably be nice here 08:49:30 return response 08:49:30 08:49:30 + 08:49:30 def metadata_input(): 08:49:30 url = {'rfc8040': '{}/data/open-terminal-meta-data:open-terminal-meta-data', 08:49:30 'draft-bierman02': '{}/config/data/open-terminal-meta-data:open-terminal-meta-data'} 08:49:30 @@ -460,6 +461,7 @@ def metadata_input(): 08:49:30 response = put_request(url[RESTCONF_VERSION], body) 08:49:30 return response 08:49:30 08:49:30 + 08:49:30 def catlog_input(): 08:49:30 url = {'rfc8040': '{}/operations/org-openroadm-service:add-specific-operational-modes-to-catalog', 08:49:30 'draft-bierman02': '{}/config/operations/org-openroadm-service:add-specific-operational-modes-to-catalog'} 08:49:30 @@ -680,12 +682,14 @@ def del_portmapping(): 08:49:30 response = delete_request(url[RESTCONF_VERSION].format('{}')) 08:49:30 return {'status_code': response.status_code} 08:49:30 08:49:30 + 08:49:30 def del_metadata(): 08:49:30 url = {'rfc8040': '{}/data/open-terminal-meta-data:open-terminal-meta-data', 08:49:30 'draft-bierman02': '{}/config/data/open-terminal-meta-data:open-terminal-meta-data'} 08:49:30 response = delete_request(url[RESTCONF_VERSION].format('{}')) 08:49:30 return {'status_code': response.status_code} 08:49:30 08:49:30 + 08:49:30 def get_portmapping_node_attr(node: str, attr: str, value: str): 08:49:30 # pylint: disable=consider-using-f-string 08:49:30 url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 08:49:30 pre-commit: exit 1 (51.13 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure pid=29150 08:49:31 pre-commit: FAIL ✖ in 54.48 seconds 08:49:31 pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' 08:49:31 docs-linkcheck: alabaster==1.0.0,attrs==24.2.0,babel==2.16.0,blockdiag==3.0.0,certifi==2024.8.30,charset-normalizer==3.4.0,contourpy==1.3.1,cycler==0.12.1,docutils==0.21.2,fonttools==4.55.0,funcparserlib==2.0.0a0,future==1.0.0,idna==3.10,imagesize==1.4.1,Jinja2==3.1.4,jsonschema==3.2.0,kiwisolver==1.4.7,lfdocs-conf==0.9.0,MarkupSafe==3.0.2,matplotlib==3.9.2,numpy==2.1.3,nwdiag==3.0.0,packaging==24.2,pillow==11.0.0,pip==24.3.1,Pygments==2.18.0,pyparsing==3.2.0,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.3,requests-file==1.5.1,seqdiag==3.0.0,setuptools==75.6.0,six==1.16.0,snowballstemmer==2.2.0,Sphinx==8.1.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.2,sphinx-tabs==3.4.7,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.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.11.1,wheel==0.45.1 08:49:31 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 08:49:31 docs: freeze> python -m pip freeze --all 08:49:31 docs: alabaster==1.0.0,attrs==24.2.0,babel==2.16.0,blockdiag==3.0.0,certifi==2024.8.30,charset-normalizer==3.4.0,contourpy==1.3.1,cycler==0.12.1,docutils==0.21.2,fonttools==4.55.0,funcparserlib==2.0.0a0,future==1.0.0,idna==3.10,imagesize==1.4.1,Jinja2==3.1.4,jsonschema==3.2.0,kiwisolver==1.4.7,lfdocs-conf==0.9.0,MarkupSafe==3.0.2,matplotlib==3.9.2,numpy==2.1.3,nwdiag==3.0.0,packaging==24.2,pillow==11.0.0,pip==24.3.1,Pygments==2.18.0,pyparsing==3.2.0,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.3,requests-file==1.5.1,seqdiag==3.0.0,setuptools==75.6.0,six==1.16.0,snowballstemmer==2.2.0,Sphinx==8.1.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.2,sphinx-tabs==3.4.7,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.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.11.1,wheel==0.45.1 08:49:31 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 08:49:35 docs: OK ✔ in 1 minute 0.46 seconds 08:49:35 pylint: freeze> python -m pip freeze --all 08:49:35 pylint: astroid==3.3.5,dill==0.3.9,isort==5.13.2,mccabe==0.7.0,pip==24.3.1,platformdirs==4.3.6,pylint==3.3.1,setuptools==75.6.0,tomlkit==0.13.2,wheel==0.45.1 08:49:35 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}$' '{}' + 08:49:53 ************* Module common.test_utils 08:49:53 transportpce_tests/common/test_utils.py:1:0: C0302: Too many lines in module (1013/1000) (too-many-lines) 08:49:53 ************* Module OC 08:49:53 transportpce_tests/OC/__init__.py:1:0: C0103: Module name "OC" doesn't conform to '([a-z0-9_]+$)|([0-9.]{1,30}$)' pattern (invalid-name) 08:49:53 08:49:53 ------------------------------------ 08:49:53 Your code has been rated at 10.00/10 08:49:53 08:49:54 docs-linkcheck: OK ✔ in 1 minute 2.33 seconds 08:49:54 pylint: exit 1 (18.97 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> find transportpce_tests/ -name '*.py' -exec pylint --fail-under=10 --max-line-length=120 --disable=missing-docstring,import-error --disable=fixme --disable=duplicate-code '--module-rgx=([a-z0-9_]+$)|([0-9.]{1,30}$)' '--method-rgx=(([a-z_][a-zA-Z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-zA-Z][a-zA-Z0-9_]+__))$' '--variable-rgx=[a-zA-Z_][a-zA-Z0-9_]{1,30}$' '{}' + pid=30118 08:50:30 pylint: FAIL ✖ in 23.72 seconds 08:50:30 buildcontroller: OK ✔ in 1 minute 55.95 seconds 08:50:30 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 08:50:30 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 08:50:30 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 08:50:30 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 08:50:36 build_karaf_tests221: freeze> python -m pip freeze --all 08:50:36 build_karaf_tests121: freeze> python -m pip freeze --all 08:50:36 sims: freeze> python -m pip freeze --all 08:50:36 build_karaf_tests221: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 08:50:36 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 08:50:36 NOTE: Picked up JDK_JAVA_OPTIONS: 08:50:36 --add-opens=java.base/java.io=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.lang=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.net=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.nio=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.nio.file=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.util=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.util.jar=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.util.stream=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.util.zip=ALL-UNNAMED 08:50:36 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 08:50:36 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 08:50:36 -Xlog:disable 08:50:36 build_karaf_tests121: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 08:50:36 build_karaf_tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 08:50:36 NOTE: Picked up JDK_JAVA_OPTIONS: 08:50:36 --add-opens=java.base/java.io=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.lang=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.net=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.nio=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.nio.file=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.util=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.util.jar=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.util.stream=ALL-UNNAMED 08:50:36 --add-opens=java.base/java.util.zip=ALL-UNNAMED 08:50:36 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 08:50:36 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 08:50:36 -Xlog:disable 08:50:36 sims: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 08:50:36 sims: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_lightynode.sh 08:50:36 Using lighynode version 20.1.0.2 08:50:36 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory 08:50:40 sims: OK ✔ in 10.81 seconds 08:50:40 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 08:50:51 build_karaf_tests71: freeze> python -m pip freeze --all 08:50:52 build_karaf_tests71: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 08:50:52 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 08:50:52 NOTE: Picked up JDK_JAVA_OPTIONS: 08:50:52 --add-opens=java.base/java.io=ALL-UNNAMED 08:50:52 --add-opens=java.base/java.lang=ALL-UNNAMED 08:50:52 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 08:50:52 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 08:50:52 --add-opens=java.base/java.net=ALL-UNNAMED 08:50:52 --add-opens=java.base/java.nio=ALL-UNNAMED 08:50:52 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 08:50:52 --add-opens=java.base/java.nio.file=ALL-UNNAMED 08:50:52 --add-opens=java.base/java.util=ALL-UNNAMED 08:50:52 --add-opens=java.base/java.util.jar=ALL-UNNAMED 08:50:52 --add-opens=java.base/java.util.stream=ALL-UNNAMED 08:50:52 --add-opens=java.base/java.util.zip=ALL-UNNAMED 08:50:52 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 08:50:52 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 08:50:52 -Xlog:disable 08:51:23 build_karaf_tests221: OK ✔ in 53.2 seconds 08:51:23 sims190: 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:51:24 build_karaf_tests121: OK ✔ in 55.11 seconds 08:51:24 build_karaf_tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 08:51:29 build_karaf_tests71: OK ✔ in 48.94 seconds 08:51:29 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 08:51:30 sims190: freeze> python -m pip freeze --all 08:51:30 sims190: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 08:51:30 sims190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_sims.sh 08:51:30 Using lighynode version 20.1.0.2 08:51:30 lightynode simulator in version 20.1.0.2 is alreay installed 08:51:31 sims190: OK ✔ in 7.87 seconds 08:51:31 build_karaf_tests190: freeze> python -m pip freeze --all 08:51:31 build_karaf_tests190: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 08:51:31 build_karaf_tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 08:51:31 NOTE: Picked up JDK_JAVA_OPTIONS: 08:51:31 --add-opens=java.base/java.io=ALL-UNNAMED 08:51:31 --add-opens=java.base/java.lang=ALL-UNNAMED 08:51:31 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 08:51:31 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 08:51:31 --add-opens=java.base/java.net=ALL-UNNAMED 08:51:31 --add-opens=java.base/java.nio=ALL-UNNAMED 08:51:31 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 08:51:31 --add-opens=java.base/java.nio.file=ALL-UNNAMED 08:51:31 --add-opens=java.base/java.util=ALL-UNNAMED 08:51:31 --add-opens=java.base/java.util.jar=ALL-UNNAMED 08:51:31 --add-opens=java.base/java.util.stream=ALL-UNNAMED 08:51:31 --add-opens=java.base/java.util.zip=ALL-UNNAMED 08:51:31 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 08:51:31 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 08:51:31 -Xlog:disable 08:51:35 build_karaf_tests_hybrid: freeze> python -m pip freeze --all 08:51:35 build_karaf_tests_hybrid: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 08:51:35 build_karaf_tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 08:51:35 NOTE: Picked up JDK_JAVA_OPTIONS: 08:51:35 --add-opens=java.base/java.io=ALL-UNNAMED 08:51:35 --add-opens=java.base/java.lang=ALL-UNNAMED 08:51:35 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 08:51:35 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 08:51:35 --add-opens=java.base/java.net=ALL-UNNAMED 08:51:35 --add-opens=java.base/java.nio=ALL-UNNAMED 08:51:35 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 08:51:35 --add-opens=java.base/java.nio.file=ALL-UNNAMED 08:51:35 --add-opens=java.base/java.util=ALL-UNNAMED 08:51:35 --add-opens=java.base/java.util.jar=ALL-UNNAMED 08:51:35 --add-opens=java.base/java.util.stream=ALL-UNNAMED 08:51:35 --add-opens=java.base/java.util.zip=ALL-UNNAMED 08:51:35 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 08:51:35 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 08:51:35 -Xlog:disable 08:51:40 testsPCE: freeze> python -m pip freeze --all 08:51:41 testsPCE: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,click==8.1.7,contourpy==1.3.1,cryptography==3.3.2,cycler==0.12.1,dict2xml==1.7.6,Flask==2.1.3,Flask-Injector==0.14.0,fonttools==4.55.0,gnpy4tpce==2.4.7,idna==3.10,iniconfig==2.0.0,injector==0.22.0,itsdangerous==2.2.0,Jinja2==3.1.4,kiwisolver==1.4.7,lxml==5.3.0,MarkupSafe==3.0.2,matplotlib==3.9.2,netconf-client==3.1.2,networkx==2.8.8,numpy==1.26.4,packaging==24.2,pandas==1.5.3,paramiko==3.5.0,pbr==5.11.1,pillow==11.0.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pyparsing==3.2.0,pytest==8.3.3,python-dateutil==2.9.0.post0,pytz==2024.2,requests==2.32.3,scipy==1.14.1,setuptools==50.3.2,six==1.16.0,urllib3==2.2.3,Werkzeug==2.0.3,wheel==0.45.1,xlrd==1.2.0 08:51:41 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce 08:51:41 pytest -q transportpce_tests/pce/test01_pce.py 08:52:12 build_karaf_tests190: OK ✔ in 48.16 seconds 08:52:12 tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 08:52:20 build_karaf_tests_hybrid: OK ✔ in 49.5 seconds 08:52:20 tests190: freeze> python -m pip freeze --all 08:52:21 tests190: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 08:52:21 tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_lightynode.sh 08:52:21 Using lighynode version 20.1.0.2 08:52:21 lightynode simulator in version 20.1.0.2 is alreay installed 08:52:21 tests190: commands[1] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh OC 08:52:21 using environment variables from ./karafOC.env 08:52:21 pytest -q transportpce_tests/OC/test01_portmapping.py 08:52:32 ........FF............ [100%] 08:53:35 20 passed in 114.18s (0:01:54) 08:53:36 pytest -q transportpce_tests/pce/test02_pce_400G.py 08:53:52 ......... [100%] 08:54:14 9 passed in 38.55s 08:54:14 pytest -q transportpce_tests/pce/test03_gnpy.py 08:54:31 ........ [100%] 08:54:52 8 passed in 37.56s 08:54:52 pytest -q transportpce_tests/pce/test04_pce_bug_fix.py 08:55:24 ... [100%] 08:55:29 3 passed in 36.43s 08:55:29 testsPCE: OK ✔ in 4 minutes 59.88 seconds 08:55:29 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 08:55:35 tests_tapi: freeze> python -m pip freeze --all 08:55:35 tests_tapi: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 08:55:35 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi 08:55:35 using environment variables from ./karaf221.env 08:55:35 pytest -q transportpce_tests/tapi/test01_abstracted_topology.py 08:55:51 FFFFFFFFE [100%] 08:56:01 ==================================== ERRORS ==================================== 08:56:01 _ ERROR at teardown of TransportpceOCPortMappingTesting.test_10_xpdr_device_disconnection _ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def _new_conn(self) -> socket.socket: 08:56:01 """Establish a socket connection and set nodelay settings on it. 08:56:01 08:56:01 :return: New socket connection. 08:56:01 """ 08:56:01 try: 08:56:01 > sock = connection.create_connection( 08:56:01 (self._dns_host, self.port), 08:56:01 self.timeout, 08:56:01 source_address=self.source_address, 08:56:01 socket_options=self.socket_options, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:199: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 08:56:01 raise err 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 address = ('localhost', 8182), timeout = 10, source_address = None 08:56:01 socket_options = [(6, 1, 1)] 08:56:01 08:56:01 def create_connection( 08:56:01 address: tuple[str, int], 08:56:01 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 08:56:01 source_address: tuple[str, int] | None = None, 08:56:01 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 08:56:01 ) -> socket.socket: 08:56:01 """Connect to *address* and return the socket object. 08:56:01 08:56:01 Convenience function. Connect to *address* (a 2-tuple ``(host, 08:56:01 port)``) and return the socket object. Passing the optional 08:56:01 *timeout* parameter will set the timeout on the socket instance 08:56:01 before attempting to connect. If no *timeout* is supplied, the 08:56:01 global default timeout setting returned by :func:`socket.getdefaulttimeout` 08:56:01 is used. If *source_address* is set it must be a tuple of (host, port) 08:56:01 for the socket to bind as a source address before making the connection. 08:56:01 An host of '' or port 0 tells the OS to use the default. 08:56:01 """ 08:56:01 08:56:01 host, port = address 08:56:01 if host.startswith("["): 08:56:01 host = host.strip("[]") 08:56:01 err = None 08:56:01 08:56:01 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 08:56:01 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 08:56:01 # The original create_connection function always returns all records. 08:56:01 family = allowed_gai_family() 08:56:01 08:56:01 try: 08:56:01 host.encode("idna") 08:56:01 except UnicodeError: 08:56:01 raise LocationParseError(f"'{host}', label empty or too long") from None 08:56:01 08:56:01 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 08:56:01 af, socktype, proto, canonname, sa = res 08:56:01 sock = None 08:56:01 try: 08:56:01 sock = socket.socket(af, socktype, proto) 08:56:01 08:56:01 # If provided, set socket level options before connecting. 08:56:01 _set_socket_options(sock, socket_options) 08:56:01 08:56:01 if timeout is not _DEFAULT_TIMEOUT: 08:56:01 sock.settimeout(timeout) 08:56:01 if source_address: 08:56:01 sock.bind(source_address) 08:56:01 > sock.connect(sa) 08:56:01 E ConnectionRefusedError: [Errno 111] Connection refused 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 08:56:01 08:56:01 The above exception was the direct cause of the following exception: 08:56:01 08:56:01 self = 08:56:01 method = 'DELETE' 08:56:01 url = '/rests/data/open-terminal-meta-data:open-terminal-meta-data', body = None 08:56:01 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 08:56:01 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 08:56:01 redirect = False, assert_same_host = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 08:56:01 release_conn = False, chunked = False, body_pos = None, preload_content = False 08:56:01 decode_content = False, response_kw = {} 08:56:01 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/open-terminal-meta-data:open-terminal-meta-data', query=None, fragment=None) 08:56:01 destination_scheme = None, conn = None, release_this_conn = True 08:56:01 http_tunnel_required = False, err = None, clean_exit = False 08:56:01 08:56:01 def urlopen( # type: ignore[override] 08:56:01 self, 08:56:01 method: str, 08:56:01 url: str, 08:56:01 body: _TYPE_BODY | None = None, 08:56:01 headers: typing.Mapping[str, str] | None = None, 08:56:01 retries: Retry | bool | int | None = None, 08:56:01 redirect: bool = True, 08:56:01 assert_same_host: bool = True, 08:56:01 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 08:56:01 pool_timeout: int | None = None, 08:56:01 release_conn: bool | None = None, 08:56:01 chunked: bool = False, 08:56:01 body_pos: _TYPE_BODY_POSITION | None = None, 08:56:01 preload_content: bool = True, 08:56:01 decode_content: bool = True, 08:56:01 **response_kw: typing.Any, 08:56:01 ) -> BaseHTTPResponse: 08:56:01 """ 08:56:01 Get a connection from the pool and perform an HTTP request. This is the 08:56:01 lowest level call for making a request, so you'll need to specify all 08:56:01 the raw details. 08:56:01 08:56:01 .. note:: 08:56:01 08:56:01 More commonly, it's appropriate to use a convenience method 08:56:01 such as :meth:`request`. 08:56:01 08:56:01 .. note:: 08:56:01 08:56:01 `release_conn` will only behave as expected if 08:56:01 `preload_content=False` because we want to make 08:56:01 `preload_content=False` the default behaviour someday soon without 08:56:01 breaking backwards compatibility. 08:56:01 08:56:01 :param method: 08:56:01 HTTP request method (such as GET, POST, PUT, etc.) 08:56:01 08:56:01 :param url: 08:56:01 The URL to perform the request on. 08:56:01 08:56:01 :param body: 08:56:01 Data to send in the request body, either :class:`str`, :class:`bytes`, 08:56:01 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 08:56:01 08:56:01 :param headers: 08:56:01 Dictionary of custom headers to send, such as User-Agent, 08:56:01 If-None-Match, etc. If None, pool headers are used. If provided, 08:56:01 these headers completely replace any pool-specific headers. 08:56:01 08:56:01 :param retries: 08:56:01 Configure the number of retries to allow before raising a 08:56:01 :class:`~urllib3.exceptions.MaxRetryError` exception. 08:56:01 08:56:01 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 08:56:01 :class:`~urllib3.util.retry.Retry` object for fine-grained control 08:56:01 over different types of retries. 08:56:01 Pass an integer number to retry connection errors that many times, 08:56:01 but no other types of errors. Pass zero to never retry. 08:56:01 08:56:01 If ``False``, then retries are disabled and any exception is raised 08:56:01 immediately. Also, instead of raising a MaxRetryError on redirects, 08:56:01 the redirect response will be returned. 08:56:01 08:56:01 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 08:56:01 08:56:01 :param redirect: 08:56:01 If True, automatically handle redirects (status codes 301, 302, 08:56:01 303, 307, 308). Each redirect counts as a retry. Disabling retries 08:56:01 will disable redirect, too. 08:56:01 08:56:01 :param assert_same_host: 08:56:01 If ``True``, will make sure that the host of the pool requests is 08:56:01 consistent else will raise HostChangedError. When ``False``, you can 08:56:01 use the pool on an HTTP proxy and request foreign hosts. 08:56:01 08:56:01 :param timeout: 08:56:01 If specified, overrides the default timeout for this one 08:56:01 request. It may be a float (in seconds) or an instance of 08:56:01 :class:`urllib3.util.Timeout`. 08:56:01 08:56:01 :param pool_timeout: 08:56:01 If set and the pool is set to block=True, then this method will 08:56:01 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 08:56:01 connection is available within the time period. 08:56:01 08:56:01 :param bool preload_content: 08:56:01 If True, the response's body will be preloaded into memory. 08:56:01 08:56:01 :param bool decode_content: 08:56:01 If True, will attempt to decode the body based on the 08:56:01 'content-encoding' header. 08:56:01 08:56:01 :param release_conn: 08:56:01 If False, then the urlopen call will not release the connection 08:56:01 back into the pool once a response is received (but will release if 08:56:01 you read the entire contents of the response such as when 08:56:01 `preload_content=True`). This is useful if you're not preloading 08:56:01 the response's content immediately. You will need to call 08:56:01 ``r.release_conn()`` on the response ``r`` to return the connection 08:56:01 back into the pool. If None, it takes the value of ``preload_content`` 08:56:01 which defaults to ``True``. 08:56:01 08:56:01 :param bool chunked: 08:56:01 If True, urllib3 will send the body using chunked transfer 08:56:01 encoding. Otherwise, urllib3 will send the body using the standard 08:56:01 content-length form. Defaults to False. 08:56:01 08:56:01 :param int body_pos: 08:56:01 Position to seek to in file-like body in the event of a retry or 08:56:01 redirect. Typically this won't need to be set because urllib3 will 08:56:01 auto-populate the value when needed. 08:56:01 """ 08:56:01 parsed_url = parse_url(url) 08:56:01 destination_scheme = parsed_url.scheme 08:56:01 08:56:01 if headers is None: 08:56:01 headers = self.headers 08:56:01 08:56:01 if not isinstance(retries, Retry): 08:56:01 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 08:56:01 08:56:01 if release_conn is None: 08:56:01 release_conn = preload_content 08:56:01 08:56:01 # Check host 08:56:01 if assert_same_host and not self.is_same_host(url): 08:56:01 raise HostChangedError(self, url, retries) 08:56:01 08:56:01 # Ensure that the URL we're connecting to is properly encoded 08:56:01 if url.startswith("/"): 08:56:01 url = to_str(_encode_target(url)) 08:56:01 else: 08:56:01 url = to_str(parsed_url.url) 08:56:01 08:56:01 conn = None 08:56:01 08:56:01 # Track whether `conn` needs to be released before 08:56:01 # returning/raising/recursing. Update this variable if necessary, and 08:56:01 # leave `release_conn` constant throughout the function. That way, if 08:56:01 # the function recurses, the original value of `release_conn` will be 08:56:01 # passed down into the recursive call, and its value will be respected. 08:56:01 # 08:56:01 # See issue #651 [1] for details. 08:56:01 # 08:56:01 # [1] 08:56:01 release_this_conn = release_conn 08:56:01 08:56:01 http_tunnel_required = connection_requires_http_tunnel( 08:56:01 self.proxy, self.proxy_config, destination_scheme 08:56:01 ) 08:56:01 08:56:01 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 08:56:01 # have to copy the headers dict so we can safely change it without those 08:56:01 # changes being reflected in anyone else's copy. 08:56:01 if not http_tunnel_required: 08:56:01 headers = headers.copy() # type: ignore[attr-defined] 08:56:01 headers.update(self.proxy_headers) # type: ignore[union-attr] 08:56:01 08:56:01 # Must keep the exception bound to a separate variable or else Python 3 08:56:01 # complains about UnboundLocalError. 08:56:01 err = None 08:56:01 08:56:01 # Keep track of whether we cleanly exited the except block. This 08:56:01 # ensures we do proper cleanup in finally. 08:56:01 clean_exit = False 08:56:01 08:56:01 # Rewind body position, if needed. Record current position 08:56:01 # for future rewinds in the event of a redirect/retry. 08:56:01 body_pos = set_file_position(body, body_pos) 08:56:01 08:56:01 try: 08:56:01 # Request a connection from the queue. 08:56:01 timeout_obj = self._get_timeout(timeout) 08:56:01 conn = self._get_conn(timeout=pool_timeout) 08:56:01 08:56:01 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 08:56:01 08:56:01 # Is this a closed/new connection that requires CONNECT tunnelling? 08:56:01 if self.proxy is not None and http_tunnel_required and conn.is_closed: 08:56:01 try: 08:56:01 self._prepare_proxy(conn) 08:56:01 except (BaseSSLError, OSError, SocketTimeout) as e: 08:56:01 self._raise_timeout( 08:56:01 err=e, url=self.proxy.url, timeout_value=conn.timeout 08:56:01 ) 08:56:01 raise 08:56:01 08:56:01 # If we're going to release the connection in ``finally:``, then 08:56:01 # the response doesn't need to know about the connection. Otherwise 08:56:01 # it will also try to release it and we'll have a double-release 08:56:01 # mess. 08:56:01 response_conn = conn if not release_conn else None 08:56:01 08:56:01 # Make the request on the HTTPConnection object 08:56:01 > response = self._make_request( 08:56:01 conn, 08:56:01 method, 08:56:01 url, 08:56:01 timeout=timeout_obj, 08:56:01 body=body, 08:56:01 headers=headers, 08:56:01 chunked=chunked, 08:56:01 retries=retries, 08:56:01 response_conn=response_conn, 08:56:01 preload_content=preload_content, 08:56:01 decode_content=decode_content, 08:56:01 **response_kw, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 08:56:01 conn.request( 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:441: in request 08:56:01 self.endheaders() 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1298: in endheaders 08:56:01 self._send_output(message_body, encode_chunked=encode_chunked) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1058: in _send_output 08:56:01 self.send(msg) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:996: in send 08:56:01 self.connect() 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 08:56:01 self.sock = self._new_conn() 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def _new_conn(self) -> socket.socket: 08:56:01 """Establish a socket connection and set nodelay settings on it. 08:56:01 08:56:01 :return: New socket connection. 08:56:01 """ 08:56:01 try: 08:56:01 sock = connection.create_connection( 08:56:01 (self._dns_host, self.port), 08:56:01 self.timeout, 08:56:01 source_address=self.source_address, 08:56:01 socket_options=self.socket_options, 08:56:01 ) 08:56:01 except socket.gaierror as e: 08:56:01 raise NameResolutionError(self.host, self, e) from e 08:56:01 except SocketTimeout as e: 08:56:01 raise ConnectTimeoutError( 08:56:01 self, 08:56:01 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 08:56:01 ) from e 08:56:01 08:56:01 except OSError as e: 08:56:01 > raise NewConnectionError( 08:56:01 self, f"Failed to establish a new connection: {e}" 08:56:01 ) from e 08:56:01 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 08:56:01 08:56:01 The above exception was the direct cause of the following exception: 08:56:01 08:56:01 self = 08:56:01 request = , stream = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 08:56:01 proxies = OrderedDict() 08:56:01 08:56:01 def send( 08:56:01 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 08:56:01 ): 08:56:01 """Sends PreparedRequest object. Returns Response object. 08:56:01 08:56:01 :param request: The :class:`PreparedRequest ` being sent. 08:56:01 :param stream: (optional) Whether to stream the request content. 08:56:01 :param timeout: (optional) How long to wait for the server to send 08:56:01 data before giving up, as a float, or a :ref:`(connect timeout, 08:56:01 read timeout) ` tuple. 08:56:01 :type timeout: float or tuple or urllib3 Timeout object 08:56:01 :param verify: (optional) Either a boolean, in which case it controls whether 08:56:01 we verify the server's TLS certificate, or a string, in which case it 08:56:01 must be a path to a CA bundle to use 08:56:01 :param cert: (optional) Any user-provided SSL certificate to be trusted. 08:56:01 :param proxies: (optional) The proxies dictionary to apply to the request. 08:56:01 :rtype: requests.Response 08:56:01 """ 08:56:01 08:56:01 try: 08:56:01 conn = self.get_connection_with_tls_context( 08:56:01 request, verify, proxies=proxies, cert=cert 08:56:01 ) 08:56:01 except LocationValueError as e: 08:56:01 raise InvalidURL(e, request=request) 08:56:01 08:56:01 self.cert_verify(conn, request.url, verify, cert) 08:56:01 url = self.request_url(request, proxies) 08:56:01 self.add_headers( 08:56:01 request, 08:56:01 stream=stream, 08:56:01 timeout=timeout, 08:56:01 verify=verify, 08:56:01 cert=cert, 08:56:01 proxies=proxies, 08:56:01 ) 08:56:01 08:56:01 chunked = not (request.body is None or "Content-Length" in request.headers) 08:56:01 08:56:01 if isinstance(timeout, tuple): 08:56:01 try: 08:56:01 connect, read = timeout 08:56:01 timeout = TimeoutSauce(connect=connect, read=read) 08:56:01 except ValueError: 08:56:01 raise ValueError( 08:56:01 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 08:56:01 f"or a single float to set both timeouts to the same value." 08:56:01 ) 08:56:01 elif isinstance(timeout, TimeoutSauce): 08:56:01 pass 08:56:01 else: 08:56:01 timeout = TimeoutSauce(connect=timeout, read=timeout) 08:56:01 08:56:01 try: 08:56:01 > resp = conn.urlopen( 08:56:01 method=request.method, 08:56:01 url=url, 08:56:01 body=request.body, 08:56:01 headers=request.headers, 08:56:01 redirect=False, 08:56:01 assert_same_host=False, 08:56:01 preload_content=False, 08:56:01 decode_content=False, 08:56:01 retries=self.max_retries, 08:56:01 timeout=timeout, 08:56:01 chunked=chunked, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/adapters.py:667: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 08:56:01 retries = retries.increment( 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 08:56:01 method = 'DELETE' 08:56:01 url = '/rests/data/open-terminal-meta-data:open-terminal-meta-data' 08:56:01 response = None 08:56:01 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 08:56:01 _pool = 08:56:01 _stacktrace = 08:56:01 08:56:01 def increment( 08:56:01 self, 08:56:01 method: str | None = None, 08:56:01 url: str | None = None, 08:56:01 response: BaseHTTPResponse | None = None, 08:56:01 error: Exception | None = None, 08:56:01 _pool: ConnectionPool | None = None, 08:56:01 _stacktrace: TracebackType | None = None, 08:56:01 ) -> Self: 08:56:01 """Return a new Retry object with incremented retry counters. 08:56:01 08:56:01 :param response: A response object, or None, if the server did not 08:56:01 return a response. 08:56:01 :type response: :class:`~urllib3.response.BaseHTTPResponse` 08:56:01 :param Exception error: An error encountered during the request, or 08:56:01 None if the response was received successfully. 08:56:01 08:56:01 :return: A new ``Retry`` object. 08:56:01 """ 08:56:01 if self.total is False and error: 08:56:01 # Disabled, indicate to re-raise the error. 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 08:56:01 total = self.total 08:56:01 if total is not None: 08:56:01 total -= 1 08:56:01 08:56:01 connect = self.connect 08:56:01 read = self.read 08:56:01 redirect = self.redirect 08:56:01 status_count = self.status 08:56:01 other = self.other 08:56:01 cause = "unknown" 08:56:01 status = None 08:56:01 redirect_location = None 08:56:01 08:56:01 if error and self._is_connection_error(error): 08:56:01 # Connect retry? 08:56:01 if connect is False: 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 elif connect is not None: 08:56:01 connect -= 1 08:56:01 08:56:01 elif error and self._is_read_error(error): 08:56:01 # Read retry? 08:56:01 if read is False or method is None or not self._is_method_retryable(method): 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 elif read is not None: 08:56:01 read -= 1 08:56:01 08:56:01 elif error: 08:56:01 # Other retry? 08:56:01 if other is not None: 08:56:01 other -= 1 08:56:01 08:56:01 elif response and response.get_redirect_location(): 08:56:01 # Redirect retry? 08:56:01 if redirect is not None: 08:56:01 redirect -= 1 08:56:01 cause = "too many redirects" 08:56:01 response_redirect_location = response.get_redirect_location() 08:56:01 if response_redirect_location: 08:56:01 redirect_location = response_redirect_location 08:56:01 status = response.status 08:56:01 08:56:01 else: 08:56:01 # Incrementing because of a server error like a 500 in 08:56:01 # status_forcelist and the given method is in the allowed_methods 08:56:01 cause = ResponseError.GENERIC_ERROR 08:56:01 if response and response.status: 08:56:01 if status_count is not None: 08:56:01 status_count -= 1 08:56:01 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 08:56:01 status = response.status 08:56:01 08:56:01 history = self.history + ( 08:56:01 RequestHistory(method, url, error, status, redirect_location), 08:56:01 ) 08:56:01 08:56:01 new_retry = self.new( 08:56:01 total=total, 08:56:01 connect=connect, 08:56:01 read=read, 08:56:01 redirect=redirect, 08:56:01 status=status_count, 08:56:01 other=other, 08:56:01 history=history, 08:56:01 ) 08:56:01 08:56:01 if new_retry.is_exhausted(): 08:56:01 reason = error or ResponseError(cause) 08:56:01 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 08:56:01 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/open-terminal-meta-data:open-terminal-meta-data (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 08:56:01 08:56:01 During handling of the above exception, another exception occurred: 08:56:01 08:56:01 cls = 08:56:01 08:56:01 @classmethod 08:56:01 def tearDownClass(cls): 08:56:01 # pylint: disable=not-an-iterable 08:56:01 > test_utils.del_metadata() 08:56:01 08:56:01 transportpce_tests/OC/test01_portmapping.py:37: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 transportpce_tests/common/test_utils.py:689: in del_metadata 08:56:01 response = delete_request(url[RESTCONF_VERSION].format('{}')) 08:56:01 transportpce_tests/common/test_utils.py:133: in delete_request 08:56:01 return requests.request( 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/api.py:59: in request 08:56:01 return session.request(method=method, url=url, **kwargs) 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/sessions.py:589: in request 08:56:01 resp = self.send(prep, **send_kwargs) 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/sessions.py:703: in send 08:56:01 r = adapter.send(request, **kwargs) 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = 08:56:01 request = , stream = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 08:56:01 proxies = OrderedDict() 08:56:01 08:56:01 def send( 08:56:01 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 08:56:01 ): 08:56:01 """Sends PreparedRequest object. Returns Response object. 08:56:01 08:56:01 :param request: The :class:`PreparedRequest ` being sent. 08:56:01 :param stream: (optional) Whether to stream the request content. 08:56:01 :param timeout: (optional) How long to wait for the server to send 08:56:01 data before giving up, as a float, or a :ref:`(connect timeout, 08:56:01 read timeout) ` tuple. 08:56:01 :type timeout: float or tuple or urllib3 Timeout object 08:56:01 :param verify: (optional) Either a boolean, in which case it controls whether 08:56:01 we verify the server's TLS certificate, or a string, in which case it 08:56:01 must be a path to a CA bundle to use 08:56:01 :param cert: (optional) Any user-provided SSL certificate to be trusted. 08:56:01 :param proxies: (optional) The proxies dictionary to apply to the request. 08:56:01 :rtype: requests.Response 08:56:01 """ 08:56:01 08:56:01 try: 08:56:01 conn = self.get_connection_with_tls_context( 08:56:01 request, verify, proxies=proxies, cert=cert 08:56:01 ) 08:56:01 except LocationValueError as e: 08:56:01 raise InvalidURL(e, request=request) 08:56:01 08:56:01 self.cert_verify(conn, request.url, verify, cert) 08:56:01 url = self.request_url(request, proxies) 08:56:01 self.add_headers( 08:56:01 request, 08:56:01 stream=stream, 08:56:01 timeout=timeout, 08:56:01 verify=verify, 08:56:01 cert=cert, 08:56:01 proxies=proxies, 08:56:01 ) 08:56:01 08:56:01 chunked = not (request.body is None or "Content-Length" in request.headers) 08:56:01 08:56:01 if isinstance(timeout, tuple): 08:56:01 try: 08:56:01 connect, read = timeout 08:56:01 timeout = TimeoutSauce(connect=connect, read=read) 08:56:01 except ValueError: 08:56:01 raise ValueError( 08:56:01 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 08:56:01 f"or a single float to set both timeouts to the same value." 08:56:01 ) 08:56:01 elif isinstance(timeout, TimeoutSauce): 08:56:01 pass 08:56:01 else: 08:56:01 timeout = TimeoutSauce(connect=timeout, read=timeout) 08:56:01 08:56:01 try: 08:56:01 resp = conn.urlopen( 08:56:01 method=request.method, 08:56:01 url=url, 08:56:01 body=request.body, 08:56:01 headers=request.headers, 08:56:01 redirect=False, 08:56:01 assert_same_host=False, 08:56:01 preload_content=False, 08:56:01 decode_content=False, 08:56:01 retries=self.max_retries, 08:56:01 timeout=timeout, 08:56:01 chunked=chunked, 08:56:01 ) 08:56:01 08:56:01 except (ProtocolError, OSError) as err: 08:56:01 raise ConnectionError(err, request=request) 08:56:01 08:56:01 except MaxRetryError as e: 08:56:01 if isinstance(e.reason, ConnectTimeoutError): 08:56:01 # TODO: Remove this in 3.0.0: see #2811 08:56:01 if not isinstance(e.reason, NewConnectionError): 08:56:01 raise ConnectTimeout(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, ResponseError): 08:56:01 raise RetryError(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, _ProxyError): 08:56:01 raise ProxyError(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, _SSLError): 08:56:01 # This branch is for urllib3 v1.22 and later. 08:56:01 raise SSLError(e, request=request) 08:56:01 08:56:01 > raise ConnectionError(e, request=request) 08:56:01 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/open-terminal-meta-data:open-terminal-meta-data (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 08:56:01 ----------------------------- Captured stdout call ----------------------------- 08:56:01 execution of test_10_xpdr_device_disconnection 08:56:01 =================================== FAILURES =================================== 08:56:01 _________ TransportpceOCPortMappingTesting.test_01_meta_data_insertion _________ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def test_01_meta_data_insertion(self): 08:56:01 response = test_utils.metadata_input() 08:56:01 > self.assertEqual(response.status_code, requests.codes.created, 08:56:01 test_utils.CODE_SHOULD_BE_201) 08:56:01 E AssertionError: 404 != 201 : Http status code should be 201 08:56:01 08:56:01 transportpce_tests/OC/test01_portmapping.py:49: AssertionError 08:56:01 ---------------------------- Captured stdout setup ----------------------------- 08:56:01 starting OpenDaylight... 08:56:01 starting KARAF TransportPCE build... 08:56:01 Searching for patterns in karaf.log... Pattern found! OpenDaylight started ! 08:56:01 starting simulator sample-openconfig-mpdr in OpenROADM device version OC... 08:56:01 Searching for patterns in sample-openconfig-mpdr.log... Pattern found! simulator for sample-openconfig-mpdr started 08:56:01 ----------------------------- Captured stdout call ----------------------------- 08:56:01 execution of test_01_meta_data_insertion 08:56:01 _______ TransportpceOCPortMappingTesting.test_02_catlog_input_insertion ________ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def test_02_catlog_input_insertion(self): 08:56:01 response = test_utils.catlog_input() 08:56:01 > self.assertEqual(response.status_code, requests.codes.ok, 08:56:01 test_utils.CODE_SHOULD_BE_200) 08:56:01 E AssertionError: 404 != 200 : Http status code should be 200 08:56:01 08:56:01 transportpce_tests/OC/test01_portmapping.py:54: AssertionError 08:56:01 ----------------------------- Captured stdout call ----------------------------- 08:56:01 execution of test_02_catlog_input_insertion 08:56:01 _______ TransportpceOCPortMappingTesting.test_03_xpdr_device_connection ________ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def test_03_xpdr_device_connection(self): 08:56:01 response = test_utils.mount_device("XPDR-OC", 08:56:01 ('sample-openconfig-mpdr', self.NODE_VERSION)) 08:56:01 > self.assertEqual(response.status_code, requests.codes.created, 08:56:01 test_utils.CODE_SHOULD_BE_201) 08:56:01 E AssertionError: 404 != 201 : Http status code should be 201 08:56:01 08:56:01 transportpce_tests/OC/test01_portmapping.py:60: AssertionError 08:56:01 ----------------------------- Captured stdout call ----------------------------- 08:56:01 execution of test_03_xpdr_device_connection 08:56:01 Searching for patterns in karaf.log... Pattern not found after 180 seconds! Node XPDR-OC still not added to tpce topology... 08:56:01 ________ TransportpceOCPortMappingTesting.test_04_xpdr_device_connected ________ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def _new_conn(self) -> socket.socket: 08:56:01 """Establish a socket connection and set nodelay settings on it. 08:56:01 08:56:01 :return: New socket connection. 08:56:01 """ 08:56:01 try: 08:56:01 > sock = connection.create_connection( 08:56:01 (self._dns_host, self.port), 08:56:01 self.timeout, 08:56:01 source_address=self.source_address, 08:56:01 socket_options=self.socket_options, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:199: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 08:56:01 raise err 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 address = ('localhost', 8182), timeout = 10, source_address = None 08:56:01 socket_options = [(6, 1, 1)] 08:56:01 08:56:01 def create_connection( 08:56:01 address: tuple[str, int], 08:56:01 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 08:56:01 source_address: tuple[str, int] | None = None, 08:56:01 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 08:56:01 ) -> socket.socket: 08:56:01 """Connect to *address* and return the socket object. 08:56:01 08:56:01 Convenience function. Connect to *address* (a 2-tuple ``(host, 08:56:01 port)``) and return the socket object. Passing the optional 08:56:01 *timeout* parameter will set the timeout on the socket instance 08:56:01 before attempting to connect. If no *timeout* is supplied, the 08:56:01 global default timeout setting returned by :func:`socket.getdefaulttimeout` 08:56:01 is used. If *source_address* is set it must be a tuple of (host, port) 08:56:01 for the socket to bind as a source address before making the connection. 08:56:01 An host of '' or port 0 tells the OS to use the default. 08:56:01 """ 08:56:01 08:56:01 host, port = address 08:56:01 if host.startswith("["): 08:56:01 host = host.strip("[]") 08:56:01 err = None 08:56:01 08:56:01 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 08:56:01 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 08:56:01 # The original create_connection function always returns all records. 08:56:01 family = allowed_gai_family() 08:56:01 08:56:01 try: 08:56:01 host.encode("idna") 08:56:01 except UnicodeError: 08:56:01 raise LocationParseError(f"'{host}', label empty or too long") from None 08:56:01 08:56:01 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 08:56:01 af, socktype, proto, canonname, sa = res 08:56:01 sock = None 08:56:01 try: 08:56:01 sock = socket.socket(af, socktype, proto) 08:56:01 08:56:01 # If provided, set socket level options before connecting. 08:56:01 _set_socket_options(sock, socket_options) 08:56:01 08:56:01 if timeout is not _DEFAULT_TIMEOUT: 08:56:01 sock.settimeout(timeout) 08:56:01 if source_address: 08:56:01 sock.bind(source_address) 08:56:01 > sock.connect(sa) 08:56:01 E ConnectionRefusedError: [Errno 111] Connection refused 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 08:56:01 08:56:01 The above exception was the direct cause of the following exception: 08:56:01 08:56:01 self = 08:56:01 method = 'GET' 08:56:01 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-OC?content=nonconfig' 08:56:01 body = None 08:56:01 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='} 08:56:01 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 08:56:01 redirect = False, assert_same_host = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 08:56:01 release_conn = False, chunked = False, body_pos = None, preload_content = False 08:56:01 decode_content = False, response_kw = {} 08:56:01 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-OC', query='content=nonconfig', fragment=None) 08:56:01 destination_scheme = None, conn = None, release_this_conn = True 08:56:01 http_tunnel_required = False, err = None, clean_exit = False 08:56:01 08:56:01 def urlopen( # type: ignore[override] 08:56:01 self, 08:56:01 method: str, 08:56:01 url: str, 08:56:01 body: _TYPE_BODY | None = None, 08:56:01 headers: typing.Mapping[str, str] | None = None, 08:56:01 retries: Retry | bool | int | None = None, 08:56:01 redirect: bool = True, 08:56:01 assert_same_host: bool = True, 08:56:01 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 08:56:01 pool_timeout: int | None = None, 08:56:01 release_conn: bool | None = None, 08:56:01 chunked: bool = False, 08:56:01 body_pos: _TYPE_BODY_POSITION | None = None, 08:56:01 preload_content: bool = True, 08:56:01 decode_content: bool = True, 08:56:01 **response_kw: typing.Any, 08:56:01 ) -> BaseHTTPResponse: 08:56:01 """ 08:56:01 Get a connection from the pool and perform an HTTP request. This is the 08:56:01 lowest level call for making a request, so you'll need to specify all 08:56:01 the raw details. 08:56:01 08:56:01 .. note:: 08:56:01 08:56:01 More commonly, it's appropriate to use a convenience method 08:56:01 such as :meth:`request`. 08:56:01 08:56:01 .. note:: 08:56:01 08:56:01 `release_conn` will only behave as expected if 08:56:01 `preload_content=False` because we want to make 08:56:01 `preload_content=False` the default behaviour someday soon without 08:56:01 breaking backwards compatibility. 08:56:01 08:56:01 :param method: 08:56:01 HTTP request method (such as GET, POST, PUT, etc.) 08:56:01 08:56:01 :param url: 08:56:01 The URL to perform the request on. 08:56:01 08:56:01 :param body: 08:56:01 Data to send in the request body, either :class:`str`, :class:`bytes`, 08:56:01 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 08:56:01 08:56:01 :param headers: 08:56:01 Dictionary of custom headers to send, such as User-Agent, 08:56:01 If-None-Match, etc. If None, pool headers are used. If provided, 08:56:01 these headers completely replace any pool-specific headers. 08:56:01 08:56:01 :param retries: 08:56:01 Configure the number of retries to allow before raising a 08:56:01 :class:`~urllib3.exceptions.MaxRetryError` exception. 08:56:01 08:56:01 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 08:56:01 :class:`~urllib3.util.retry.Retry` object for fine-grained control 08:56:01 over different types of retries. 08:56:01 Pass an integer number to retry connection errors that many times, 08:56:01 but no other types of errors. Pass zero to never retry. 08:56:01 08:56:01 If ``False``, then retries are disabled and any exception is raised 08:56:01 immediately. Also, instead of raising a MaxRetryError on redirects, 08:56:01 the redirect response will be returned. 08:56:01 08:56:01 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 08:56:01 08:56:01 :param redirect: 08:56:01 If True, automatically handle redirects (status codes 301, 302, 08:56:01 303, 307, 308). Each redirect counts as a retry. Disabling retries 08:56:01 will disable redirect, too. 08:56:01 08:56:01 :param assert_same_host: 08:56:01 If ``True``, will make sure that the host of the pool requests is 08:56:01 consistent else will raise HostChangedError. When ``False``, you can 08:56:01 use the pool on an HTTP proxy and request foreign hosts. 08:56:01 08:56:01 :param timeout: 08:56:01 If specified, overrides the default timeout for this one 08:56:01 request. It may be a float (in seconds) or an instance of 08:56:01 :class:`urllib3.util.Timeout`. 08:56:01 08:56:01 :param pool_timeout: 08:56:01 If set and the pool is set to block=True, then this method will 08:56:01 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 08:56:01 connection is available within the time period. 08:56:01 08:56:01 :param bool preload_content: 08:56:01 If True, the response's body will be preloaded into memory. 08:56:01 08:56:01 :param bool decode_content: 08:56:01 If True, will attempt to decode the body based on the 08:56:01 'content-encoding' header. 08:56:01 08:56:01 :param release_conn: 08:56:01 If False, then the urlopen call will not release the connection 08:56:01 back into the pool once a response is received (but will release if 08:56:01 you read the entire contents of the response such as when 08:56:01 `preload_content=True`). This is useful if you're not preloading 08:56:01 the response's content immediately. You will need to call 08:56:01 ``r.release_conn()`` on the response ``r`` to return the connection 08:56:01 back into the pool. If None, it takes the value of ``preload_content`` 08:56:01 which defaults to ``True``. 08:56:01 08:56:01 :param bool chunked: 08:56:01 If True, urllib3 will send the body using chunked transfer 08:56:01 encoding. Otherwise, urllib3 will send the body using the standard 08:56:01 content-length form. Defaults to False. 08:56:01 08:56:01 :param int body_pos: 08:56:01 Position to seek to in file-like body in the event of a retry or 08:56:01 redirect. Typically this won't need to be set because urllib3 will 08:56:01 auto-populate the value when needed. 08:56:01 """ 08:56:01 parsed_url = parse_url(url) 08:56:01 destination_scheme = parsed_url.scheme 08:56:01 08:56:01 if headers is None: 08:56:01 headers = self.headers 08:56:01 08:56:01 if not isinstance(retries, Retry): 08:56:01 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 08:56:01 08:56:01 if release_conn is None: 08:56:01 release_conn = preload_content 08:56:01 08:56:01 # Check host 08:56:01 if assert_same_host and not self.is_same_host(url): 08:56:01 raise HostChangedError(self, url, retries) 08:56:01 08:56:01 # Ensure that the URL we're connecting to is properly encoded 08:56:01 if url.startswith("/"): 08:56:01 url = to_str(_encode_target(url)) 08:56:01 else: 08:56:01 url = to_str(parsed_url.url) 08:56:01 08:56:01 conn = None 08:56:01 08:56:01 # Track whether `conn` needs to be released before 08:56:01 # returning/raising/recursing. Update this variable if necessary, and 08:56:01 # leave `release_conn` constant throughout the function. That way, if 08:56:01 # the function recurses, the original value of `release_conn` will be 08:56:01 # passed down into the recursive call, and its value will be respected. 08:56:01 # 08:56:01 # See issue #651 [1] for details. 08:56:01 # 08:56:01 # [1] 08:56:01 release_this_conn = release_conn 08:56:01 08:56:01 http_tunnel_required = connection_requires_http_tunnel( 08:56:01 self.proxy, self.proxy_config, destination_scheme 08:56:01 ) 08:56:01 08:56:01 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 08:56:01 # have to copy the headers dict so we can safely change it without those 08:56:01 # changes being reflected in anyone else's copy. 08:56:01 if not http_tunnel_required: 08:56:01 headers = headers.copy() # type: ignore[attr-defined] 08:56:01 headers.update(self.proxy_headers) # type: ignore[union-attr] 08:56:01 08:56:01 # Must keep the exception bound to a separate variable or else Python 3 08:56:01 # complains about UnboundLocalError. 08:56:01 err = None 08:56:01 08:56:01 # Keep track of whether we cleanly exited the except block. This 08:56:01 # ensures we do proper cleanup in finally. 08:56:01 clean_exit = False 08:56:01 08:56:01 # Rewind body position, if needed. Record current position 08:56:01 # for future rewinds in the event of a redirect/retry. 08:56:01 body_pos = set_file_position(body, body_pos) 08:56:01 08:56:01 try: 08:56:01 # Request a connection from the queue. 08:56:01 timeout_obj = self._get_timeout(timeout) 08:56:01 conn = self._get_conn(timeout=pool_timeout) 08:56:01 08:56:01 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 08:56:01 08:56:01 # Is this a closed/new connection that requires CONNECT tunnelling? 08:56:01 if self.proxy is not None and http_tunnel_required and conn.is_closed: 08:56:01 try: 08:56:01 self._prepare_proxy(conn) 08:56:01 except (BaseSSLError, OSError, SocketTimeout) as e: 08:56:01 self._raise_timeout( 08:56:01 err=e, url=self.proxy.url, timeout_value=conn.timeout 08:56:01 ) 08:56:01 raise 08:56:01 08:56:01 # If we're going to release the connection in ``finally:``, then 08:56:01 # the response doesn't need to know about the connection. Otherwise 08:56:01 # it will also try to release it and we'll have a double-release 08:56:01 # mess. 08:56:01 response_conn = conn if not release_conn else None 08:56:01 08:56:01 # Make the request on the HTTPConnection object 08:56:01 > response = self._make_request( 08:56:01 conn, 08:56:01 method, 08:56:01 url, 08:56:01 timeout=timeout_obj, 08:56:01 body=body, 08:56:01 headers=headers, 08:56:01 chunked=chunked, 08:56:01 retries=retries, 08:56:01 response_conn=response_conn, 08:56:01 preload_content=preload_content, 08:56:01 decode_content=decode_content, 08:56:01 **response_kw, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 08:56:01 conn.request( 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:441: in request 08:56:01 self.endheaders() 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1298: in endheaders 08:56:01 self._send_output(message_body, encode_chunked=encode_chunked) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1058: in _send_output 08:56:01 self.send(msg) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:996: in send 08:56:01 self.connect() 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 08:56:01 self.sock = self._new_conn() 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def _new_conn(self) -> socket.socket: 08:56:01 """Establish a socket connection and set nodelay settings on it. 08:56:01 08:56:01 :return: New socket connection. 08:56:01 """ 08:56:01 try: 08:56:01 sock = connection.create_connection( 08:56:01 (self._dns_host, self.port), 08:56:01 self.timeout, 08:56:01 source_address=self.source_address, 08:56:01 socket_options=self.socket_options, 08:56:01 ) 08:56:01 except socket.gaierror as e: 08:56:01 raise NameResolutionError(self.host, self, e) from e 08:56:01 except SocketTimeout as e: 08:56:01 raise ConnectTimeoutError( 08:56:01 self, 08:56:01 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 08:56:01 ) from e 08:56:01 08:56:01 except OSError as e: 08:56:01 > raise NewConnectionError( 08:56:01 self, f"Failed to establish a new connection: {e}" 08:56:01 ) from e 08:56:01 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 08:56:01 08:56:01 The above exception was the direct cause of the following exception: 08:56:01 08:56:01 self = 08:56:01 request = , stream = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 08:56:01 proxies = OrderedDict() 08:56:01 08:56:01 def send( 08:56:01 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 08:56:01 ): 08:56:01 """Sends PreparedRequest object. Returns Response object. 08:56:01 08:56:01 :param request: The :class:`PreparedRequest ` being sent. 08:56:01 :param stream: (optional) Whether to stream the request content. 08:56:01 :param timeout: (optional) How long to wait for the server to send 08:56:01 data before giving up, as a float, or a :ref:`(connect timeout, 08:56:01 read timeout) ` tuple. 08:56:01 :type timeout: float or tuple or urllib3 Timeout object 08:56:01 :param verify: (optional) Either a boolean, in which case it controls whether 08:56:01 we verify the server's TLS certificate, or a string, in which case it 08:56:01 must be a path to a CA bundle to use 08:56:01 :param cert: (optional) Any user-provided SSL certificate to be trusted. 08:56:01 :param proxies: (optional) The proxies dictionary to apply to the request. 08:56:01 :rtype: requests.Response 08:56:01 """ 08:56:01 08:56:01 try: 08:56:01 conn = self.get_connection_with_tls_context( 08:56:01 request, verify, proxies=proxies, cert=cert 08:56:01 ) 08:56:01 except LocationValueError as e: 08:56:01 raise InvalidURL(e, request=request) 08:56:01 08:56:01 self.cert_verify(conn, request.url, verify, cert) 08:56:01 url = self.request_url(request, proxies) 08:56:01 self.add_headers( 08:56:01 request, 08:56:01 stream=stream, 08:56:01 timeout=timeout, 08:56:01 verify=verify, 08:56:01 cert=cert, 08:56:01 proxies=proxies, 08:56:01 ) 08:56:01 08:56:01 chunked = not (request.body is None or "Content-Length" in request.headers) 08:56:01 08:56:01 if isinstance(timeout, tuple): 08:56:01 try: 08:56:01 connect, read = timeout 08:56:01 timeout = TimeoutSauce(connect=connect, read=read) 08:56:01 except ValueError: 08:56:01 raise ValueError( 08:56:01 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 08:56:01 f"or a single float to set both timeouts to the same value." 08:56:01 ) 08:56:01 elif isinstance(timeout, TimeoutSauce): 08:56:01 pass 08:56:01 else: 08:56:01 timeout = TimeoutSauce(connect=timeout, read=timeout) 08:56:01 08:56:01 try: 08:56:01 > resp = conn.urlopen( 08:56:01 method=request.method, 08:56:01 url=url, 08:56:01 body=request.body, 08:56:01 headers=request.headers, 08:56:01 redirect=False, 08:56:01 assert_same_host=False, 08:56:01 preload_content=False, 08:56:01 decode_content=False, 08:56:01 retries=self.max_retries, 08:56:01 timeout=timeout, 08:56:01 chunked=chunked, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/adapters.py:667: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 08:56:01 retries = retries.increment( 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 08:56:01 method = 'GET' 08:56:01 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-OC?content=nonconfig' 08:56:01 response = None 08:56:01 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 08:56:01 _pool = 08:56:01 _stacktrace = 08:56:01 08:56:01 def increment( 08:56:01 self, 08:56:01 method: str | None = None, 08:56:01 url: str | None = None, 08:56:01 response: BaseHTTPResponse | None = None, 08:56:01 error: Exception | None = None, 08:56:01 _pool: ConnectionPool | None = None, 08:56:01 _stacktrace: TracebackType | None = None, 08:56:01 ) -> Self: 08:56:01 """Return a new Retry object with incremented retry counters. 08:56:01 08:56:01 :param response: A response object, or None, if the server did not 08:56:01 return a response. 08:56:01 :type response: :class:`~urllib3.response.BaseHTTPResponse` 08:56:01 :param Exception error: An error encountered during the request, or 08:56:01 None if the response was received successfully. 08:56:01 08:56:01 :return: A new ``Retry`` object. 08:56:01 """ 08:56:01 if self.total is False and error: 08:56:01 # Disabled, indicate to re-raise the error. 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 08:56:01 total = self.total 08:56:01 if total is not None: 08:56:01 total -= 1 08:56:01 08:56:01 connect = self.connect 08:56:01 read = self.read 08:56:01 redirect = self.redirect 08:56:01 status_count = self.status 08:56:01 other = self.other 08:56:01 cause = "unknown" 08:56:01 status = None 08:56:01 redirect_location = None 08:56:01 08:56:01 if error and self._is_connection_error(error): 08:56:01 # Connect retry? 08:56:01 if connect is False: 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 elif connect is not None: 08:56:01 connect -= 1 08:56:01 08:56:01 elif error and self._is_read_error(error): 08:56:01 # Read retry? 08:56:01 if read is False or method is None or not self._is_method_retryable(method): 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 elif read is not None: 08:56:01 read -= 1 08:56:01 08:56:01 elif error: 08:56:01 # Other retry? 08:56:01 if other is not None: 08:56:01 other -= 1 08:56:01 08:56:01 elif response and response.get_redirect_location(): 08:56:01 # Redirect retry? 08:56:01 if redirect is not None: 08:56:01 redirect -= 1 08:56:01 cause = "too many redirects" 08:56:01 response_redirect_location = response.get_redirect_location() 08:56:01 if response_redirect_location: 08:56:01 redirect_location = response_redirect_location 08:56:01 status = response.status 08:56:01 08:56:01 else: 08:56:01 # Incrementing because of a server error like a 500 in 08:56:01 # status_forcelist and the given method is in the allowed_methods 08:56:01 cause = ResponseError.GENERIC_ERROR 08:56:01 if response and response.status: 08:56:01 if status_count is not None: 08:56:01 status_count -= 1 08:56:01 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 08:56:01 status = response.status 08:56:01 08:56:01 history = self.history + ( 08:56:01 RequestHistory(method, url, error, status, redirect_location), 08:56:01 ) 08:56:01 08:56:01 new_retry = self.new( 08:56:01 total=total, 08:56:01 connect=connect, 08:56:01 read=read, 08:56:01 redirect=redirect, 08:56:01 status=status_count, 08:56:01 other=other, 08:56:01 history=history, 08:56:01 ) 08:56:01 08:56:01 if new_retry.is_exhausted(): 08:56:01 reason = error or ResponseError(cause) 08:56:01 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 08:56:01 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-OC?content=nonconfig (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 08:56:01 08:56:01 During handling of the above exception, another exception occurred: 08:56:01 08:56:01 self = 08:56:01 08:56:01 def test_04_xpdr_device_connected(self): 08:56:01 > response = test_utils.check_device_connection("XPDR-OC") 08:56:01 08:56:01 transportpce_tests/OC/test01_portmapping.py:64: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 transportpce_tests/common/test_utils.py:596: in check_device_connection 08:56:01 response = get_request(url[RESTCONF_VERSION].format('{}', node)) 08:56:01 transportpce_tests/common/test_utils.py:116: in get_request 08:56:01 return requests.request( 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/api.py:59: in request 08:56:01 return session.request(method=method, url=url, **kwargs) 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/sessions.py:589: in request 08:56:01 resp = self.send(prep, **send_kwargs) 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/sessions.py:703: in send 08:56:01 r = adapter.send(request, **kwargs) 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = 08:56:01 request = , stream = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 08:56:01 proxies = OrderedDict() 08:56:01 08:56:01 def send( 08:56:01 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 08:56:01 ): 08:56:01 """Sends PreparedRequest object. Returns Response object. 08:56:01 08:56:01 :param request: The :class:`PreparedRequest ` being sent. 08:56:01 :param stream: (optional) Whether to stream the request content. 08:56:01 :param timeout: (optional) How long to wait for the server to send 08:56:01 data before giving up, as a float, or a :ref:`(connect timeout, 08:56:01 read timeout) ` tuple. 08:56:01 :type timeout: float or tuple or urllib3 Timeout object 08:56:01 :param verify: (optional) Either a boolean, in which case it controls whether 08:56:01 we verify the server's TLS certificate, or a string, in which case it 08:56:01 must be a path to a CA bundle to use 08:56:01 :param cert: (optional) Any user-provided SSL certificate to be trusted. 08:56:01 :param proxies: (optional) The proxies dictionary to apply to the request. 08:56:01 :rtype: requests.Response 08:56:01 """ 08:56:01 08:56:01 try: 08:56:01 conn = self.get_connection_with_tls_context( 08:56:01 request, verify, proxies=proxies, cert=cert 08:56:01 ) 08:56:01 except LocationValueError as e: 08:56:01 raise InvalidURL(e, request=request) 08:56:01 08:56:01 self.cert_verify(conn, request.url, verify, cert) 08:56:01 url = self.request_url(request, proxies) 08:56:01 self.add_headers( 08:56:01 request, 08:56:01 stream=stream, 08:56:01 timeout=timeout, 08:56:01 verify=verify, 08:56:01 cert=cert, 08:56:01 proxies=proxies, 08:56:01 ) 08:56:01 08:56:01 chunked = not (request.body is None or "Content-Length" in request.headers) 08:56:01 08:56:01 if isinstance(timeout, tuple): 08:56:01 try: 08:56:01 connect, read = timeout 08:56:01 timeout = TimeoutSauce(connect=connect, read=read) 08:56:01 except ValueError: 08:56:01 raise ValueError( 08:56:01 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 08:56:01 f"or a single float to set both timeouts to the same value." 08:56:01 ) 08:56:01 elif isinstance(timeout, TimeoutSauce): 08:56:01 pass 08:56:01 else: 08:56:01 timeout = TimeoutSauce(connect=timeout, read=timeout) 08:56:01 08:56:01 try: 08:56:01 resp = conn.urlopen( 08:56:01 method=request.method, 08:56:01 url=url, 08:56:01 body=request.body, 08:56:01 headers=request.headers, 08:56:01 redirect=False, 08:56:01 assert_same_host=False, 08:56:01 preload_content=False, 08:56:01 decode_content=False, 08:56:01 retries=self.max_retries, 08:56:01 timeout=timeout, 08:56:01 chunked=chunked, 08:56:01 ) 08:56:01 08:56:01 except (ProtocolError, OSError) as err: 08:56:01 raise ConnectionError(err, request=request) 08:56:01 08:56:01 except MaxRetryError as e: 08:56:01 if isinstance(e.reason, ConnectTimeoutError): 08:56:01 # TODO: Remove this in 3.0.0: see #2811 08:56:01 if not isinstance(e.reason, NewConnectionError): 08:56:01 raise ConnectTimeout(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, ResponseError): 08:56:01 raise RetryError(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, _ProxyError): 08:56:01 raise ProxyError(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, _SSLError): 08:56:01 # This branch is for urllib3 v1.22 and later. 08:56:01 raise SSLError(e, request=request) 08:56:01 08:56:01 > raise ConnectionError(e, request=request) 08:56:01 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-OC?content=nonconfig (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 08:56:01 ----------------------------- Captured stdout call ----------------------------- 08:56:01 execution of test_04_xpdr_device_connected 08:56:01 ________ TransportpceOCPortMappingTesting.test_05_xpdr_portmapping_info ________ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def _new_conn(self) -> socket.socket: 08:56:01 """Establish a socket connection and set nodelay settings on it. 08:56:01 08:56:01 :return: New socket connection. 08:56:01 """ 08:56:01 try: 08:56:01 > sock = connection.create_connection( 08:56:01 (self._dns_host, self.port), 08:56:01 self.timeout, 08:56:01 source_address=self.source_address, 08:56:01 socket_options=self.socket_options, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:199: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 08:56:01 raise err 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 address = ('localhost', 8182), timeout = 10, source_address = None 08:56:01 socket_options = [(6, 1, 1)] 08:56:01 08:56:01 def create_connection( 08:56:01 address: tuple[str, int], 08:56:01 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 08:56:01 source_address: tuple[str, int] | None = None, 08:56:01 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 08:56:01 ) -> socket.socket: 08:56:01 """Connect to *address* and return the socket object. 08:56:01 08:56:01 Convenience function. Connect to *address* (a 2-tuple ``(host, 08:56:01 port)``) and return the socket object. Passing the optional 08:56:01 *timeout* parameter will set the timeout on the socket instance 08:56:01 before attempting to connect. If no *timeout* is supplied, the 08:56:01 global default timeout setting returned by :func:`socket.getdefaulttimeout` 08:56:01 is used. If *source_address* is set it must be a tuple of (host, port) 08:56:01 for the socket to bind as a source address before making the connection. 08:56:01 An host of '' or port 0 tells the OS to use the default. 08:56:01 """ 08:56:01 08:56:01 host, port = address 08:56:01 if host.startswith("["): 08:56:01 host = host.strip("[]") 08:56:01 err = None 08:56:01 08:56:01 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 08:56:01 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 08:56:01 # The original create_connection function always returns all records. 08:56:01 family = allowed_gai_family() 08:56:01 08:56:01 try: 08:56:01 host.encode("idna") 08:56:01 except UnicodeError: 08:56:01 raise LocationParseError(f"'{host}', label empty or too long") from None 08:56:01 08:56:01 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 08:56:01 af, socktype, proto, canonname, sa = res 08:56:01 sock = None 08:56:01 try: 08:56:01 sock = socket.socket(af, socktype, proto) 08:56:01 08:56:01 # If provided, set socket level options before connecting. 08:56:01 _set_socket_options(sock, socket_options) 08:56:01 08:56:01 if timeout is not _DEFAULT_TIMEOUT: 08:56:01 sock.settimeout(timeout) 08:56:01 if source_address: 08:56:01 sock.bind(source_address) 08:56:01 > sock.connect(sa) 08:56:01 E ConnectionRefusedError: [Errno 111] Connection refused 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 08:56:01 08:56:01 The above exception was the direct cause of the following exception: 08:56:01 08:56:01 self = 08:56:01 method = 'GET' 08:56:01 url = '/rests/data/transportpce-portmapping:network/nodes=XPDR-OC/node-info' 08:56:01 body = None 08:56:01 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='} 08:56:01 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 08:56:01 redirect = False, assert_same_host = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 08:56:01 release_conn = False, chunked = False, body_pos = None, preload_content = False 08:56:01 decode_content = False, response_kw = {} 08:56:01 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/transportpce-portmapping:network/nodes=XPDR-OC/node-info', query=None, fragment=None) 08:56:01 destination_scheme = None, conn = None, release_this_conn = True 08:56:01 http_tunnel_required = False, err = None, clean_exit = False 08:56:01 08:56:01 def urlopen( # type: ignore[override] 08:56:01 self, 08:56:01 method: str, 08:56:01 url: str, 08:56:01 body: _TYPE_BODY | None = None, 08:56:01 headers: typing.Mapping[str, str] | None = None, 08:56:01 retries: Retry | bool | int | None = None, 08:56:01 redirect: bool = True, 08:56:01 assert_same_host: bool = True, 08:56:01 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 08:56:01 pool_timeout: int | None = None, 08:56:01 release_conn: bool | None = None, 08:56:01 chunked: bool = False, 08:56:01 body_pos: _TYPE_BODY_POSITION | None = None, 08:56:01 preload_content: bool = True, 08:56:01 decode_content: bool = True, 08:56:01 **response_kw: typing.Any, 08:56:01 ) -> BaseHTTPResponse: 08:56:01 """ 08:56:01 Get a connection from the pool and perform an HTTP request. This is the 08:56:01 lowest level call for making a request, so you'll need to specify all 08:56:01 the raw details. 08:56:01 08:56:01 .. note:: 08:56:01 08:56:01 More commonly, it's appropriate to use a convenience method 08:56:01 such as :meth:`request`. 08:56:01 08:56:01 .. note:: 08:56:01 08:56:01 `release_conn` will only behave as expected if 08:56:01 `preload_content=False` because we want to make 08:56:01 `preload_content=False` the default behaviour someday soon without 08:56:01 breaking backwards compatibility. 08:56:01 08:56:01 :param method: 08:56:01 HTTP request method (such as GET, POST, PUT, etc.) 08:56:01 08:56:01 :param url: 08:56:01 The URL to perform the request on. 08:56:01 08:56:01 :param body: 08:56:01 Data to send in the request body, either :class:`str`, :class:`bytes`, 08:56:01 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 08:56:01 08:56:01 :param headers: 08:56:01 Dictionary of custom headers to send, such as User-Agent, 08:56:01 If-None-Match, etc. If None, pool headers are used. If provided, 08:56:01 these headers completely replace any pool-specific headers. 08:56:01 08:56:01 :param retries: 08:56:01 Configure the number of retries to allow before raising a 08:56:01 :class:`~urllib3.exceptions.MaxRetryError` exception. 08:56:01 08:56:01 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 08:56:01 :class:`~urllib3.util.retry.Retry` object for fine-grained control 08:56:01 over different types of retries. 08:56:01 Pass an integer number to retry connection errors that many times, 08:56:01 but no other types of errors. Pass zero to never retry. 08:56:01 08:56:01 If ``False``, then retries are disabled and any exception is raised 08:56:01 immediately. Also, instead of raising a MaxRetryError on redirects, 08:56:01 the redirect response will be returned. 08:56:01 08:56:01 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 08:56:01 08:56:01 :param redirect: 08:56:01 If True, automatically handle redirects (status codes 301, 302, 08:56:01 303, 307, 308). Each redirect counts as a retry. Disabling retries 08:56:01 will disable redirect, too. 08:56:01 08:56:01 :param assert_same_host: 08:56:01 If ``True``, will make sure that the host of the pool requests is 08:56:01 consistent else will raise HostChangedError. When ``False``, you can 08:56:01 use the pool on an HTTP proxy and request foreign hosts. 08:56:01 08:56:01 :param timeout: 08:56:01 If specified, overrides the default timeout for this one 08:56:01 request. It may be a float (in seconds) or an instance of 08:56:01 :class:`urllib3.util.Timeout`. 08:56:01 08:56:01 :param pool_timeout: 08:56:01 If set and the pool is set to block=True, then this method will 08:56:01 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 08:56:01 connection is available within the time period. 08:56:01 08:56:01 :param bool preload_content: 08:56:01 If True, the response's body will be preloaded into memory. 08:56:01 08:56:01 :param bool decode_content: 08:56:01 If True, will attempt to decode the body based on the 08:56:01 'content-encoding' header. 08:56:01 08:56:01 :param release_conn: 08:56:01 If False, then the urlopen call will not release the connection 08:56:01 back into the pool once a response is received (but will release if 08:56:01 you read the entire contents of the response such as when 08:56:01 `preload_content=True`). This is useful if you're not preloading 08:56:01 the response's content immediately. You will need to call 08:56:01 ``r.release_conn()`` on the response ``r`` to return the connection 08:56:01 back into the pool. If None, it takes the value of ``preload_content`` 08:56:01 which defaults to ``True``. 08:56:01 08:56:01 :param bool chunked: 08:56:01 If True, urllib3 will send the body using chunked transfer 08:56:01 encoding. Otherwise, urllib3 will send the body using the standard 08:56:01 content-length form. Defaults to False. 08:56:01 08:56:01 :param int body_pos: 08:56:01 Position to seek to in file-like body in the event of a retry or 08:56:01 redirect. Typically this won't need to be set because urllib3 will 08:56:01 auto-populate the value when needed. 08:56:01 """ 08:56:01 parsed_url = parse_url(url) 08:56:01 destination_scheme = parsed_url.scheme 08:56:01 08:56:01 if headers is None: 08:56:01 headers = self.headers 08:56:01 08:56:01 if not isinstance(retries, Retry): 08:56:01 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 08:56:01 08:56:01 if release_conn is None: 08:56:01 release_conn = preload_content 08:56:01 08:56:01 # Check host 08:56:01 if assert_same_host and not self.is_same_host(url): 08:56:01 raise HostChangedError(self, url, retries) 08:56:01 08:56:01 # Ensure that the URL we're connecting to is properly encoded 08:56:01 if url.startswith("/"): 08:56:01 url = to_str(_encode_target(url)) 08:56:01 else: 08:56:01 url = to_str(parsed_url.url) 08:56:01 08:56:01 conn = None 08:56:01 08:56:01 # Track whether `conn` needs to be released before 08:56:01 # returning/raising/recursing. Update this variable if necessary, and 08:56:01 # leave `release_conn` constant throughout the function. That way, if 08:56:01 # the function recurses, the original value of `release_conn` will be 08:56:01 # passed down into the recursive call, and its value will be respected. 08:56:01 # 08:56:01 # See issue #651 [1] for details. 08:56:01 # 08:56:01 # [1] 08:56:01 release_this_conn = release_conn 08:56:01 08:56:01 http_tunnel_required = connection_requires_http_tunnel( 08:56:01 self.proxy, self.proxy_config, destination_scheme 08:56:01 ) 08:56:01 08:56:01 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 08:56:01 # have to copy the headers dict so we can safely change it without those 08:56:01 # changes being reflected in anyone else's copy. 08:56:01 if not http_tunnel_required: 08:56:01 headers = headers.copy() # type: ignore[attr-defined] 08:56:01 headers.update(self.proxy_headers) # type: ignore[union-attr] 08:56:01 08:56:01 # Must keep the exception bound to a separate variable or else Python 3 08:56:01 # complains about UnboundLocalError. 08:56:01 err = None 08:56:01 08:56:01 # Keep track of whether we cleanly exited the except block. This 08:56:01 # ensures we do proper cleanup in finally. 08:56:01 clean_exit = False 08:56:01 08:56:01 # Rewind body position, if needed. Record current position 08:56:01 # for future rewinds in the event of a redirect/retry. 08:56:01 body_pos = set_file_position(body, body_pos) 08:56:01 08:56:01 try: 08:56:01 # Request a connection from the queue. 08:56:01 timeout_obj = self._get_timeout(timeout) 08:56:01 conn = self._get_conn(timeout=pool_timeout) 08:56:01 08:56:01 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 08:56:01 08:56:01 # Is this a closed/new connection that requires CONNECT tunnelling? 08:56:01 if self.proxy is not None and http_tunnel_required and conn.is_closed: 08:56:01 try: 08:56:01 self._prepare_proxy(conn) 08:56:01 except (BaseSSLError, OSError, SocketTimeout) as e: 08:56:01 self._raise_timeout( 08:56:01 err=e, url=self.proxy.url, timeout_value=conn.timeout 08:56:01 ) 08:56:01 raise 08:56:01 08:56:01 # If we're going to release the connection in ``finally:``, then 08:56:01 # the response doesn't need to know about the connection. Otherwise 08:56:01 # it will also try to release it and we'll have a double-release 08:56:01 # mess. 08:56:01 response_conn = conn if not release_conn else None 08:56:01 08:56:01 # Make the request on the HTTPConnection object 08:56:01 > response = self._make_request( 08:56:01 conn, 08:56:01 method, 08:56:01 url, 08:56:01 timeout=timeout_obj, 08:56:01 body=body, 08:56:01 headers=headers, 08:56:01 chunked=chunked, 08:56:01 retries=retries, 08:56:01 response_conn=response_conn, 08:56:01 preload_content=preload_content, 08:56:01 decode_content=decode_content, 08:56:01 **response_kw, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 08:56:01 conn.request( 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:441: in request 08:56:01 self.endheaders() 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1298: in endheaders 08:56:01 self._send_output(message_body, encode_chunked=encode_chunked) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1058: in _send_output 08:56:01 self.send(msg) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:996: in send 08:56:01 self.connect() 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 08:56:01 self.sock = self._new_conn() 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def _new_conn(self) -> socket.socket: 08:56:01 """Establish a socket connection and set nodelay settings on it. 08:56:01 08:56:01 :return: New socket connection. 08:56:01 """ 08:56:01 try: 08:56:01 sock = connection.create_connection( 08:56:01 (self._dns_host, self.port), 08:56:01 self.timeout, 08:56:01 source_address=self.source_address, 08:56:01 socket_options=self.socket_options, 08:56:01 ) 08:56:01 except socket.gaierror as e: 08:56:01 raise NameResolutionError(self.host, self, e) from e 08:56:01 except SocketTimeout as e: 08:56:01 raise ConnectTimeoutError( 08:56:01 self, 08:56:01 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 08:56:01 ) from e 08:56:01 08:56:01 except OSError as e: 08:56:01 > raise NewConnectionError( 08:56:01 self, f"Failed to establish a new connection: {e}" 08:56:01 ) from e 08:56:01 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 08:56:01 08:56:01 The above exception was the direct cause of the following exception: 08:56:01 08:56:01 self = 08:56:01 request = , stream = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 08:56:01 proxies = OrderedDict() 08:56:01 08:56:01 def send( 08:56:01 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 08:56:01 ): 08:56:01 """Sends PreparedRequest object. Returns Response object. 08:56:01 08:56:01 :param request: The :class:`PreparedRequest ` being sent. 08:56:01 :param stream: (optional) Whether to stream the request content. 08:56:01 :param timeout: (optional) How long to wait for the server to send 08:56:01 data before giving up, as a float, or a :ref:`(connect timeout, 08:56:01 read timeout) ` tuple. 08:56:01 :type timeout: float or tuple or urllib3 Timeout object 08:56:01 :param verify: (optional) Either a boolean, in which case it controls whether 08:56:01 we verify the server's TLS certificate, or a string, in which case it 08:56:01 must be a path to a CA bundle to use 08:56:01 :param cert: (optional) Any user-provided SSL certificate to be trusted. 08:56:01 :param proxies: (optional) The proxies dictionary to apply to the request. 08:56:01 :rtype: requests.Response 08:56:01 """ 08:56:01 08:56:01 try: 08:56:01 conn = self.get_connection_with_tls_context( 08:56:01 request, verify, proxies=proxies, cert=cert 08:56:01 ) 08:56:01 except LocationValueError as e: 08:56:01 raise InvalidURL(e, request=request) 08:56:01 08:56:01 self.cert_verify(conn, request.url, verify, cert) 08:56:01 url = self.request_url(request, proxies) 08:56:01 self.add_headers( 08:56:01 request, 08:56:01 stream=stream, 08:56:01 timeout=timeout, 08:56:01 verify=verify, 08:56:01 cert=cert, 08:56:01 proxies=proxies, 08:56:01 ) 08:56:01 08:56:01 chunked = not (request.body is None or "Content-Length" in request.headers) 08:56:01 08:56:01 if isinstance(timeout, tuple): 08:56:01 try: 08:56:01 connect, read = timeout 08:56:01 timeout = TimeoutSauce(connect=connect, read=read) 08:56:01 except ValueError: 08:56:01 raise ValueError( 08:56:01 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 08:56:01 f"or a single float to set both timeouts to the same value." 08:56:01 ) 08:56:01 elif isinstance(timeout, TimeoutSauce): 08:56:01 pass 08:56:01 else: 08:56:01 timeout = TimeoutSauce(connect=timeout, read=timeout) 08:56:01 08:56:01 try: 08:56:01 > resp = conn.urlopen( 08:56:01 method=request.method, 08:56:01 url=url, 08:56:01 body=request.body, 08:56:01 headers=request.headers, 08:56:01 redirect=False, 08:56:01 assert_same_host=False, 08:56:01 preload_content=False, 08:56:01 decode_content=False, 08:56:01 retries=self.max_retries, 08:56:01 timeout=timeout, 08:56:01 chunked=chunked, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/adapters.py:667: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 08:56:01 retries = retries.increment( 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 08:56:01 method = 'GET' 08:56:01 url = '/rests/data/transportpce-portmapping:network/nodes=XPDR-OC/node-info' 08:56:01 response = None 08:56:01 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 08:56:01 _pool = 08:56:01 _stacktrace = 08:56:01 08:56:01 def increment( 08:56:01 self, 08:56:01 method: str | None = None, 08:56:01 url: str | None = None, 08:56:01 response: BaseHTTPResponse | None = None, 08:56:01 error: Exception | None = None, 08:56:01 _pool: ConnectionPool | None = None, 08:56:01 _stacktrace: TracebackType | None = None, 08:56:01 ) -> Self: 08:56:01 """Return a new Retry object with incremented retry counters. 08:56:01 08:56:01 :param response: A response object, or None, if the server did not 08:56:01 return a response. 08:56:01 :type response: :class:`~urllib3.response.BaseHTTPResponse` 08:56:01 :param Exception error: An error encountered during the request, or 08:56:01 None if the response was received successfully. 08:56:01 08:56:01 :return: A new ``Retry`` object. 08:56:01 """ 08:56:01 if self.total is False and error: 08:56:01 # Disabled, indicate to re-raise the error. 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 08:56:01 total = self.total 08:56:01 if total is not None: 08:56:01 total -= 1 08:56:01 08:56:01 connect = self.connect 08:56:01 read = self.read 08:56:01 redirect = self.redirect 08:56:01 status_count = self.status 08:56:01 other = self.other 08:56:01 cause = "unknown" 08:56:01 status = None 08:56:01 redirect_location = None 08:56:01 08:56:01 if error and self._is_connection_error(error): 08:56:01 # Connect retry? 08:56:01 if connect is False: 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 elif connect is not None: 08:56:01 connect -= 1 08:56:01 08:56:01 elif error and self._is_read_error(error): 08:56:01 # Read retry? 08:56:01 if read is False or method is None or not self._is_method_retryable(method): 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 elif read is not None: 08:56:01 read -= 1 08:56:01 08:56:01 elif error: 08:56:01 # Other retry? 08:56:01 if other is not None: 08:56:01 other -= 1 08:56:01 08:56:01 elif response and response.get_redirect_location(): 08:56:01 # Redirect retry? 08:56:01 if redirect is not None: 08:56:01 redirect -= 1 08:56:01 cause = "too many redirects" 08:56:01 response_redirect_location = response.get_redirect_location() 08:56:01 if response_redirect_location: 08:56:01 redirect_location = response_redirect_location 08:56:01 status = response.status 08:56:01 08:56:01 else: 08:56:01 # Incrementing because of a server error like a 500 in 08:56:01 # status_forcelist and the given method is in the allowed_methods 08:56:01 cause = ResponseError.GENERIC_ERROR 08:56:01 if response and response.status: 08:56:01 if status_count is not None: 08:56:01 status_count -= 1 08:56:01 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 08:56:01 status = response.status 08:56:01 08:56:01 history = self.history + ( 08:56:01 RequestHistory(method, url, error, status, redirect_location), 08:56:01 ) 08:56:01 08:56:01 new_retry = self.new( 08:56:01 total=total, 08:56:01 connect=connect, 08:56:01 read=read, 08:56:01 redirect=redirect, 08:56:01 status=status_count, 08:56:01 other=other, 08:56:01 history=history, 08:56:01 ) 08:56:01 08:56:01 if new_retry.is_exhausted(): 08:56:01 reason = error or ResponseError(cause) 08:56:01 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 08:56:01 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/transportpce-portmapping:network/nodes=XPDR-OC/node-info (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 08:56:01 08:56:01 During handling of the above exception, another exception occurred: 08:56:01 08:56:01 self = 08:56:01 08:56:01 def test_05_xpdr_portmapping_info(self): 08:56:01 > response = test_utils.get_portmapping_node_attr("XPDR-OC", "node-info", None) 08:56:01 08:56:01 transportpce_tests/OC/test01_portmapping.py:69: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 transportpce_tests/common/test_utils.py:705: in get_portmapping_node_attr 08:56:01 response = get_request(target_url) 08:56:01 transportpce_tests/common/test_utils.py:116: in get_request 08:56:01 return requests.request( 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/api.py:59: in request 08:56:01 return session.request(method=method, url=url, **kwargs) 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/sessions.py:589: in request 08:56:01 resp = self.send(prep, **send_kwargs) 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/sessions.py:703: in send 08:56:01 r = adapter.send(request, **kwargs) 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = 08:56:01 request = , stream = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 08:56:01 proxies = OrderedDict() 08:56:01 08:56:01 def send( 08:56:01 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 08:56:01 ): 08:56:01 """Sends PreparedRequest object. Returns Response object. 08:56:01 08:56:01 :param request: The :class:`PreparedRequest ` being sent. 08:56:01 :param stream: (optional) Whether to stream the request content. 08:56:01 :param timeout: (optional) How long to wait for the server to send 08:56:01 data before giving up, as a float, or a :ref:`(connect timeout, 08:56:01 read timeout) ` tuple. 08:56:01 :type timeout: float or tuple or urllib3 Timeout object 08:56:01 :param verify: (optional) Either a boolean, in which case it controls whether 08:56:01 we verify the server's TLS certificate, or a string, in which case it 08:56:01 must be a path to a CA bundle to use 08:56:01 :param cert: (optional) Any user-provided SSL certificate to be trusted. 08:56:01 :param proxies: (optional) The proxies dictionary to apply to the request. 08:56:01 :rtype: requests.Response 08:56:01 """ 08:56:01 08:56:01 try: 08:56:01 conn = self.get_connection_with_tls_context( 08:56:01 request, verify, proxies=proxies, cert=cert 08:56:01 ) 08:56:01 except LocationValueError as e: 08:56:01 raise InvalidURL(e, request=request) 08:56:01 08:56:01 self.cert_verify(conn, request.url, verify, cert) 08:56:01 url = self.request_url(request, proxies) 08:56:01 self.add_headers( 08:56:01 request, 08:56:01 stream=stream, 08:56:01 timeout=timeout, 08:56:01 verify=verify, 08:56:01 cert=cert, 08:56:01 proxies=proxies, 08:56:01 ) 08:56:01 08:56:01 chunked = not (request.body is None or "Content-Length" in request.headers) 08:56:01 08:56:01 if isinstance(timeout, tuple): 08:56:01 try: 08:56:01 connect, read = timeout 08:56:01 timeout = TimeoutSauce(connect=connect, read=read) 08:56:01 except ValueError: 08:56:01 raise ValueError( 08:56:01 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 08:56:01 f"or a single float to set both timeouts to the same value." 08:56:01 ) 08:56:01 elif isinstance(timeout, TimeoutSauce): 08:56:01 pass 08:56:01 else: 08:56:01 timeout = TimeoutSauce(connect=timeout, read=timeout) 08:56:01 08:56:01 try: 08:56:01 resp = conn.urlopen( 08:56:01 method=request.method, 08:56:01 url=url, 08:56:01 body=request.body, 08:56:01 headers=request.headers, 08:56:01 redirect=False, 08:56:01 assert_same_host=False, 08:56:01 preload_content=False, 08:56:01 decode_content=False, 08:56:01 retries=self.max_retries, 08:56:01 timeout=timeout, 08:56:01 chunked=chunked, 08:56:01 ) 08:56:01 08:56:01 except (ProtocolError, OSError) as err: 08:56:01 raise ConnectionError(err, request=request) 08:56:01 08:56:01 except MaxRetryError as e: 08:56:01 if isinstance(e.reason, ConnectTimeoutError): 08:56:01 # TODO: Remove this in 3.0.0: see #2811 08:56:01 if not isinstance(e.reason, NewConnectionError): 08:56:01 raise ConnectTimeout(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, ResponseError): 08:56:01 raise RetryError(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, _ProxyError): 08:56:01 raise ProxyError(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, _SSLError): 08:56:01 # This branch is for urllib3 v1.22 and later. 08:56:01 raise SSLError(e, request=request) 08:56:01 08:56:01 > raise ConnectionError(e, request=request) 08:56:01 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/transportpce-portmapping:network/nodes=XPDR-OC/node-info (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 08:56:01 ----------------------------- Captured stdout call ----------------------------- 08:56:01 execution of test_05_xpdr_portmapping_info 08:56:01 ______ TransportpceOCPortMappingTesting.test_06_mpdr_portmapping_NETWORK1 ______ 08:56:01 08:56:01 self = , kwargs = {} 08:56:01 08:56:01 def json(self, **kwargs): 08:56:01 r"""Returns the json-encoded content of a response, if any. 08:56:01 08:56:01 :param \*\*kwargs: Optional arguments that ``json.loads`` takes. 08:56:01 :raises requests.exceptions.JSONDecodeError: If the response body does not 08:56:01 contain valid json. 08:56:01 """ 08:56:01 08:56:01 if not self.encoding and self.content and len(self.content) > 3: 08:56:01 # No encoding set. JSON RFC 4627 section 3 states we should expect 08:56:01 # UTF-8, -16 or -32. Detect which one to use; If the detection or 08:56:01 # decoding fails, fall back to `self.text` (using charset_normalizer to make 08:56:01 # a best guess). 08:56:01 encoding = guess_json_utf(self.content) 08:56:01 if encoding is not None: 08:56:01 try: 08:56:01 return complexjson.loads(self.content.decode(encoding), **kwargs) 08:56:01 except UnicodeDecodeError: 08:56:01 # Wrong UTF codec detected; usually because it's not UTF-8 08:56:01 # but some other 8-bit codec. This is an RFC violation, 08:56:01 # and the server didn't bother to tell us what codec *was* 08:56:01 # used. 08:56:01 pass 08:56:01 except JSONDecodeError as e: 08:56:01 raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) 08:56:01 08:56:01 try: 08:56:01 > return complexjson.loads(self.text, **kwargs) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/models.py:974: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/json/__init__.py:346: in loads 08:56:01 return _default_decoder.decode(s) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/json/decoder.py:337: in decode 08:56:01 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = , s = '', idx = 0 08:56:01 08:56:01 def raw_decode(self, s, idx=0): 08:56:01 """Decode a JSON document from ``s`` (a ``str`` beginning with 08:56:01 a JSON document) and return a 2-tuple of the Python 08:56:01 representation and the index in ``s`` where the document ended. 08:56:01 08:56:01 This can be used to decode a JSON document from a string that may 08:56:01 have extraneous data at the end. 08:56:01 08:56:01 """ 08:56:01 try: 08:56:01 obj, end = self.scan_once(s, idx) 08:56:01 except StopIteration as err: 08:56:01 > raise JSONDecodeError("Expecting value", s, err.value) from None 08:56:01 E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 08:56:01 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/json/decoder.py:355: JSONDecodeError 08:56:01 08:56:01 During handling of the above exception, another exception occurred: 08:56:01 08:56:01 self = 08:56:01 08:56:01 def test_06_mpdr_portmapping_NETWORK1(self): 08:56:01 > response = test_utils.get_portmapping_node_attr("XPDR-OC", "mapping", "XPDR1-NETWORK5") 08:56:01 08:56:01 transportpce_tests/OC/test01_portmapping.py:82: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 transportpce_tests/common/test_utils.py:706: in get_portmapping_node_attr 08:56:01 res = response.json() 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = , kwargs = {} 08:56:01 08:56:01 def json(self, **kwargs): 08:56:01 r"""Returns the json-encoded content of a response, if any. 08:56:01 08:56:01 :param \*\*kwargs: Optional arguments that ``json.loads`` takes. 08:56:01 :raises requests.exceptions.JSONDecodeError: If the response body does not 08:56:01 contain valid json. 08:56:01 """ 08:56:01 08:56:01 if not self.encoding and self.content and len(self.content) > 3: 08:56:01 # No encoding set. JSON RFC 4627 section 3 states we should expect 08:56:01 # UTF-8, -16 or -32. Detect which one to use; If the detection or 08:56:01 # decoding fails, fall back to `self.text` (using charset_normalizer to make 08:56:01 # a best guess). 08:56:01 encoding = guess_json_utf(self.content) 08:56:01 if encoding is not None: 08:56:01 try: 08:56:01 return complexjson.loads(self.content.decode(encoding), **kwargs) 08:56:01 except UnicodeDecodeError: 08:56:01 # Wrong UTF codec detected; usually because it's not UTF-8 08:56:01 # but some other 8-bit codec. This is an RFC violation, 08:56:01 # and the server didn't bother to tell us what codec *was* 08:56:01 # used. 08:56:01 pass 08:56:01 except JSONDecodeError as e: 08:56:01 raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) 08:56:01 08:56:01 try: 08:56:01 return complexjson.loads(self.text, **kwargs) 08:56:01 except JSONDecodeError as e: 08:56:01 # Catch JSON-related errors and raise as requests.JSONDecodeError 08:56:01 # This aliases json.JSONDecodeError and simplejson.JSONDecodeError 08:56:01 > raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) 08:56:01 E requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/models.py:978: JSONDecodeError 08:56:01 ----------------------------- Captured stdout call ----------------------------- 08:56:01 execution of test_06_mpdr_portmapping_NETWORK1 08:56:01 ______ TransportpceOCPortMappingTesting.test_07_mpdr_portmapping_CLIENT1 _______ 08:56:01 08:56:01 self = , kwargs = {} 08:56:01 08:56:01 def json(self, **kwargs): 08:56:01 r"""Returns the json-encoded content of a response, if any. 08:56:01 08:56:01 :param \*\*kwargs: Optional arguments that ``json.loads`` takes. 08:56:01 :raises requests.exceptions.JSONDecodeError: If the response body does not 08:56:01 contain valid json. 08:56:01 """ 08:56:01 08:56:01 if not self.encoding and self.content and len(self.content) > 3: 08:56:01 # No encoding set. JSON RFC 4627 section 3 states we should expect 08:56:01 # UTF-8, -16 or -32. Detect which one to use; If the detection or 08:56:01 # decoding fails, fall back to `self.text` (using charset_normalizer to make 08:56:01 # a best guess). 08:56:01 encoding = guess_json_utf(self.content) 08:56:01 if encoding is not None: 08:56:01 try: 08:56:01 return complexjson.loads(self.content.decode(encoding), **kwargs) 08:56:01 except UnicodeDecodeError: 08:56:01 # Wrong UTF codec detected; usually because it's not UTF-8 08:56:01 # but some other 8-bit codec. This is an RFC violation, 08:56:01 # and the server didn't bother to tell us what codec *was* 08:56:01 # used. 08:56:01 pass 08:56:01 except JSONDecodeError as e: 08:56:01 raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) 08:56:01 08:56:01 try: 08:56:01 > return complexjson.loads(self.text, **kwargs) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/models.py:974: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/json/__init__.py:346: in loads 08:56:01 return _default_decoder.decode(s) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/json/decoder.py:337: in decode 08:56:01 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = , s = '', idx = 0 08:56:01 08:56:01 def raw_decode(self, s, idx=0): 08:56:01 """Decode a JSON document from ``s`` (a ``str`` beginning with 08:56:01 a JSON document) and return a 2-tuple of the Python 08:56:01 representation and the index in ``s`` where the document ended. 08:56:01 08:56:01 This can be used to decode a JSON document from a string that may 08:56:01 have extraneous data at the end. 08:56:01 08:56:01 """ 08:56:01 try: 08:56:01 obj, end = self.scan_once(s, idx) 08:56:01 except StopIteration as err: 08:56:01 > raise JSONDecodeError("Expecting value", s, err.value) from None 08:56:01 E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 08:56:01 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/json/decoder.py:355: JSONDecodeError 08:56:01 08:56:01 During handling of the above exception, another exception occurred: 08:56:01 08:56:01 self = 08:56:01 08:56:01 def test_07_mpdr_portmapping_CLIENT1(self): 08:56:01 > response = test_utils.get_portmapping_node_attr("XPDR-OC", "mapping", "XPDR1-CLIENT1") 08:56:01 08:56:01 transportpce_tests/OC/test01_portmapping.py:100: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 transportpce_tests/common/test_utils.py:706: in get_portmapping_node_attr 08:56:01 res = response.json() 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = , kwargs = {} 08:56:01 08:56:01 def json(self, **kwargs): 08:56:01 r"""Returns the json-encoded content of a response, if any. 08:56:01 08:56:01 :param \*\*kwargs: Optional arguments that ``json.loads`` takes. 08:56:01 :raises requests.exceptions.JSONDecodeError: If the response body does not 08:56:01 contain valid json. 08:56:01 """ 08:56:01 08:56:01 if not self.encoding and self.content and len(self.content) > 3: 08:56:01 # No encoding set. JSON RFC 4627 section 3 states we should expect 08:56:01 # UTF-8, -16 or -32. Detect which one to use; If the detection or 08:56:01 # decoding fails, fall back to `self.text` (using charset_normalizer to make 08:56:01 # a best guess). 08:56:01 encoding = guess_json_utf(self.content) 08:56:01 if encoding is not None: 08:56:01 try: 08:56:01 return complexjson.loads(self.content.decode(encoding), **kwargs) 08:56:01 except UnicodeDecodeError: 08:56:01 # Wrong UTF codec detected; usually because it's not UTF-8 08:56:01 # but some other 8-bit codec. This is an RFC violation, 08:56:01 # and the server didn't bother to tell us what codec *was* 08:56:01 # used. 08:56:01 pass 08:56:01 except JSONDecodeError as e: 08:56:01 raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) 08:56:01 08:56:01 try: 08:56:01 return complexjson.loads(self.text, **kwargs) 08:56:01 except JSONDecodeError as e: 08:56:01 # Catch JSON-related errors and raise as requests.JSONDecodeError 08:56:01 # This aliases json.JSONDecodeError and simplejson.JSONDecodeError 08:56:01 > raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) 08:56:01 E requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/models.py:978: JSONDecodeError 08:56:01 ----------------------------- Captured stdout call ----------------------------- 08:56:01 execution of test_07_mpdr_portmapping_CLIENT1 08:56:01 _________ TransportpceOCPortMappingTesting.test_08_mpdr_switching_pool _________ 08:56:01 08:56:01 self = , kwargs = {} 08:56:01 08:56:01 def json(self, **kwargs): 08:56:01 r"""Returns the json-encoded content of a response, if any. 08:56:01 08:56:01 :param \*\*kwargs: Optional arguments that ``json.loads`` takes. 08:56:01 :raises requests.exceptions.JSONDecodeError: If the response body does not 08:56:01 contain valid json. 08:56:01 """ 08:56:01 08:56:01 if not self.encoding and self.content and len(self.content) > 3: 08:56:01 # No encoding set. JSON RFC 4627 section 3 states we should expect 08:56:01 # UTF-8, -16 or -32. Detect which one to use; If the detection or 08:56:01 # decoding fails, fall back to `self.text` (using charset_normalizer to make 08:56:01 # a best guess). 08:56:01 encoding = guess_json_utf(self.content) 08:56:01 if encoding is not None: 08:56:01 try: 08:56:01 return complexjson.loads(self.content.decode(encoding), **kwargs) 08:56:01 except UnicodeDecodeError: 08:56:01 # Wrong UTF codec detected; usually because it's not UTF-8 08:56:01 # but some other 8-bit codec. This is an RFC violation, 08:56:01 # and the server didn't bother to tell us what codec *was* 08:56:01 # used. 08:56:01 pass 08:56:01 except JSONDecodeError as e: 08:56:01 raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) 08:56:01 08:56:01 try: 08:56:01 > return complexjson.loads(self.text, **kwargs) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/models.py:974: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/json/__init__.py:346: in loads 08:56:01 return _default_decoder.decode(s) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/json/decoder.py:337: in decode 08:56:01 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = , s = '', idx = 0 08:56:01 08:56:01 def raw_decode(self, s, idx=0): 08:56:01 """Decode a JSON document from ``s`` (a ``str`` beginning with 08:56:01 a JSON document) and return a 2-tuple of the Python 08:56:01 representation and the index in ``s`` where the document ended. 08:56:01 08:56:01 This can be used to decode a JSON document from a string that may 08:56:01 have extraneous data at the end. 08:56:01 08:56:01 """ 08:56:01 try: 08:56:01 obj, end = self.scan_once(s, idx) 08:56:01 except StopIteration as err: 08:56:01 > raise JSONDecodeError("Expecting value", s, err.value) from None 08:56:01 E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 08:56:01 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/json/decoder.py:355: JSONDecodeError 08:56:01 08:56:01 During handling of the above exception, another exception occurred: 08:56:01 08:56:01 self = 08:56:01 08:56:01 def test_08_mpdr_switching_pool(self): 08:56:01 > response = test_utils.get_portmapping_node_attr("XPDR-OC", "switching-pool-lcp", "1") 08:56:01 08:56:01 transportpce_tests/OC/test01_portmapping.py:117: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 transportpce_tests/common/test_utils.py:706: in get_portmapping_node_attr 08:56:01 res = response.json() 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = , kwargs = {} 08:56:01 08:56:01 def json(self, **kwargs): 08:56:01 r"""Returns the json-encoded content of a response, if any. 08:56:01 08:56:01 :param \*\*kwargs: Optional arguments that ``json.loads`` takes. 08:56:01 :raises requests.exceptions.JSONDecodeError: If the response body does not 08:56:01 contain valid json. 08:56:01 """ 08:56:01 08:56:01 if not self.encoding and self.content and len(self.content) > 3: 08:56:01 # No encoding set. JSON RFC 4627 section 3 states we should expect 08:56:01 # UTF-8, -16 or -32. Detect which one to use; If the detection or 08:56:01 # decoding fails, fall back to `self.text` (using charset_normalizer to make 08:56:01 # a best guess). 08:56:01 encoding = guess_json_utf(self.content) 08:56:01 if encoding is not None: 08:56:01 try: 08:56:01 return complexjson.loads(self.content.decode(encoding), **kwargs) 08:56:01 except UnicodeDecodeError: 08:56:01 # Wrong UTF codec detected; usually because it's not UTF-8 08:56:01 # but some other 8-bit codec. This is an RFC violation, 08:56:01 # and the server didn't bother to tell us what codec *was* 08:56:01 # used. 08:56:01 pass 08:56:01 except JSONDecodeError as e: 08:56:01 raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) 08:56:01 08:56:01 try: 08:56:01 return complexjson.loads(self.text, **kwargs) 08:56:01 except JSONDecodeError as e: 08:56:01 # Catch JSON-related errors and raise as requests.JSONDecodeError 08:56:01 # This aliases json.JSONDecodeError and simplejson.JSONDecodeError 08:56:01 > raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) 08:56:01 E requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/models.py:978: JSONDecodeError 08:56:01 ----------------------------- Captured stdout call ----------------------------- 08:56:01 execution of test_08_mpdr_switching_pool 08:56:01 _________ TransportpceOCPortMappingTesting.test_09_check_mccapprofile __________ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def _new_conn(self) -> socket.socket: 08:56:01 """Establish a socket connection and set nodelay settings on it. 08:56:01 08:56:01 :return: New socket connection. 08:56:01 """ 08:56:01 try: 08:56:01 > sock = connection.create_connection( 08:56:01 (self._dns_host, self.port), 08:56:01 self.timeout, 08:56:01 source_address=self.source_address, 08:56:01 socket_options=self.socket_options, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:199: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 08:56:01 raise err 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 address = ('localhost', 8182), timeout = 10, source_address = None 08:56:01 socket_options = [(6, 1, 1)] 08:56:01 08:56:01 def create_connection( 08:56:01 address: tuple[str, int], 08:56:01 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 08:56:01 source_address: tuple[str, int] | None = None, 08:56:01 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 08:56:01 ) -> socket.socket: 08:56:01 """Connect to *address* and return the socket object. 08:56:01 08:56:01 Convenience function. Connect to *address* (a 2-tuple ``(host, 08:56:01 port)``) and return the socket object. Passing the optional 08:56:01 *timeout* parameter will set the timeout on the socket instance 08:56:01 before attempting to connect. If no *timeout* is supplied, the 08:56:01 global default timeout setting returned by :func:`socket.getdefaulttimeout` 08:56:01 is used. If *source_address* is set it must be a tuple of (host, port) 08:56:01 for the socket to bind as a source address before making the connection. 08:56:01 An host of '' or port 0 tells the OS to use the default. 08:56:01 """ 08:56:01 08:56:01 host, port = address 08:56:01 if host.startswith("["): 08:56:01 host = host.strip("[]") 08:56:01 err = None 08:56:01 08:56:01 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 08:56:01 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 08:56:01 # The original create_connection function always returns all records. 08:56:01 family = allowed_gai_family() 08:56:01 08:56:01 try: 08:56:01 host.encode("idna") 08:56:01 except UnicodeError: 08:56:01 raise LocationParseError(f"'{host}', label empty or too long") from None 08:56:01 08:56:01 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 08:56:01 af, socktype, proto, canonname, sa = res 08:56:01 sock = None 08:56:01 try: 08:56:01 sock = socket.socket(af, socktype, proto) 08:56:01 08:56:01 # If provided, set socket level options before connecting. 08:56:01 _set_socket_options(sock, socket_options) 08:56:01 08:56:01 if timeout is not _DEFAULT_TIMEOUT: 08:56:01 sock.settimeout(timeout) 08:56:01 if source_address: 08:56:01 sock.bind(source_address) 08:56:01 > sock.connect(sa) 08:56:01 E ConnectionRefusedError: [Errno 111] Connection refused 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 08:56:01 08:56:01 The above exception was the direct cause of the following exception: 08:56:01 08:56:01 self = 08:56:01 method = 'GET' 08:56:01 url = '/rests/data/transportpce-portmapping:network/nodes=XPDR-OC/mc-capabilities=XPDR-mcprofile' 08:56:01 body = None 08:56:01 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='} 08:56:01 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 08:56:01 redirect = False, assert_same_host = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 08:56:01 release_conn = False, chunked = False, body_pos = None, preload_content = False 08:56:01 decode_content = False, response_kw = {} 08:56:01 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/transportpce-portmapping:network/nodes=XPDR-OC/mc-capabilities=XPDR-mcprofile', query=None, fragment=None) 08:56:01 destination_scheme = None, conn = None, release_this_conn = True 08:56:01 http_tunnel_required = False, err = None, clean_exit = False 08:56:01 08:56:01 def urlopen( # type: ignore[override] 08:56:01 self, 08:56:01 method: str, 08:56:01 url: str, 08:56:01 body: _TYPE_BODY | None = None, 08:56:01 headers: typing.Mapping[str, str] | None = None, 08:56:01 retries: Retry | bool | int | None = None, 08:56:01 redirect: bool = True, 08:56:01 assert_same_host: bool = True, 08:56:01 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 08:56:01 pool_timeout: int | None = None, 08:56:01 release_conn: bool | None = None, 08:56:01 chunked: bool = False, 08:56:01 body_pos: _TYPE_BODY_POSITION | None = None, 08:56:01 preload_content: bool = True, 08:56:01 decode_content: bool = True, 08:56:01 **response_kw: typing.Any, 08:56:01 ) -> BaseHTTPResponse: 08:56:01 """ 08:56:01 Get a connection from the pool and perform an HTTP request. This is the 08:56:01 lowest level call for making a request, so you'll need to specify all 08:56:01 the raw details. 08:56:01 08:56:01 .. note:: 08:56:01 08:56:01 More commonly, it's appropriate to use a convenience method 08:56:01 such as :meth:`request`. 08:56:01 08:56:01 .. note:: 08:56:01 08:56:01 `release_conn` will only behave as expected if 08:56:01 `preload_content=False` because we want to make 08:56:01 `preload_content=False` the default behaviour someday soon without 08:56:01 breaking backwards compatibility. 08:56:01 08:56:01 :param method: 08:56:01 HTTP request method (such as GET, POST, PUT, etc.) 08:56:01 08:56:01 :param url: 08:56:01 The URL to perform the request on. 08:56:01 08:56:01 :param body: 08:56:01 Data to send in the request body, either :class:`str`, :class:`bytes`, 08:56:01 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 08:56:01 08:56:01 :param headers: 08:56:01 Dictionary of custom headers to send, such as User-Agent, 08:56:01 If-None-Match, etc. If None, pool headers are used. If provided, 08:56:01 these headers completely replace any pool-specific headers. 08:56:01 08:56:01 :param retries: 08:56:01 Configure the number of retries to allow before raising a 08:56:01 :class:`~urllib3.exceptions.MaxRetryError` exception. 08:56:01 08:56:01 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 08:56:01 :class:`~urllib3.util.retry.Retry` object for fine-grained control 08:56:01 over different types of retries. 08:56:01 Pass an integer number to retry connection errors that many times, 08:56:01 but no other types of errors. Pass zero to never retry. 08:56:01 08:56:01 If ``False``, then retries are disabled and any exception is raised 08:56:01 immediately. Also, instead of raising a MaxRetryError on redirects, 08:56:01 the redirect response will be returned. 08:56:01 08:56:01 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 08:56:01 08:56:01 :param redirect: 08:56:01 If True, automatically handle redirects (status codes 301, 302, 08:56:01 303, 307, 308). Each redirect counts as a retry. Disabling retries 08:56:01 will disable redirect, too. 08:56:01 08:56:01 :param assert_same_host: 08:56:01 If ``True``, will make sure that the host of the pool requests is 08:56:01 consistent else will raise HostChangedError. When ``False``, you can 08:56:01 use the pool on an HTTP proxy and request foreign hosts. 08:56:01 08:56:01 :param timeout: 08:56:01 If specified, overrides the default timeout for this one 08:56:01 request. It may be a float (in seconds) or an instance of 08:56:01 :class:`urllib3.util.Timeout`. 08:56:01 08:56:01 :param pool_timeout: 08:56:01 If set and the pool is set to block=True, then this method will 08:56:01 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 08:56:01 connection is available within the time period. 08:56:01 08:56:01 :param bool preload_content: 08:56:01 If True, the response's body will be preloaded into memory. 08:56:01 08:56:01 :param bool decode_content: 08:56:01 If True, will attempt to decode the body based on the 08:56:01 'content-encoding' header. 08:56:01 08:56:01 :param release_conn: 08:56:01 If False, then the urlopen call will not release the connection 08:56:01 back into the pool once a response is received (but will release if 08:56:01 you read the entire contents of the response such as when 08:56:01 `preload_content=True`). This is useful if you're not preloading 08:56:01 the response's content immediately. You will need to call 08:56:01 ``r.release_conn()`` on the response ``r`` to return the connection 08:56:01 back into the pool. If None, it takes the value of ``preload_content`` 08:56:01 which defaults to ``True``. 08:56:01 08:56:01 :param bool chunked: 08:56:01 If True, urllib3 will send the body using chunked transfer 08:56:01 encoding. Otherwise, urllib3 will send the body using the standard 08:56:01 content-length form. Defaults to False. 08:56:01 08:56:01 :param int body_pos: 08:56:01 Position to seek to in file-like body in the event of a retry or 08:56:01 redirect. Typically this won't need to be set because urllib3 will 08:56:01 auto-populate the value when needed. 08:56:01 """ 08:56:01 parsed_url = parse_url(url) 08:56:01 destination_scheme = parsed_url.scheme 08:56:01 08:56:01 if headers is None: 08:56:01 headers = self.headers 08:56:01 08:56:01 if not isinstance(retries, Retry): 08:56:01 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 08:56:01 08:56:01 if release_conn is None: 08:56:01 release_conn = preload_content 08:56:01 08:56:01 # Check host 08:56:01 if assert_same_host and not self.is_same_host(url): 08:56:01 raise HostChangedError(self, url, retries) 08:56:01 08:56:01 # Ensure that the URL we're connecting to is properly encoded 08:56:01 if url.startswith("/"): 08:56:01 url = to_str(_encode_target(url)) 08:56:01 else: 08:56:01 url = to_str(parsed_url.url) 08:56:01 08:56:01 conn = None 08:56:01 08:56:01 # Track whether `conn` needs to be released before 08:56:01 # returning/raising/recursing. Update this variable if necessary, and 08:56:01 # leave `release_conn` constant throughout the function. That way, if 08:56:01 # the function recurses, the original value of `release_conn` will be 08:56:01 # passed down into the recursive call, and its value will be respected. 08:56:01 # 08:56:01 # See issue #651 [1] for details. 08:56:01 # 08:56:01 # [1] 08:56:01 release_this_conn = release_conn 08:56:01 08:56:01 http_tunnel_required = connection_requires_http_tunnel( 08:56:01 self.proxy, self.proxy_config, destination_scheme 08:56:01 ) 08:56:01 08:56:01 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 08:56:01 # have to copy the headers dict so we can safely change it without those 08:56:01 # changes being reflected in anyone else's copy. 08:56:01 if not http_tunnel_required: 08:56:01 headers = headers.copy() # type: ignore[attr-defined] 08:56:01 headers.update(self.proxy_headers) # type: ignore[union-attr] 08:56:01 08:56:01 # Must keep the exception bound to a separate variable or else Python 3 08:56:01 # complains about UnboundLocalError. 08:56:01 err = None 08:56:01 08:56:01 # Keep track of whether we cleanly exited the except block. This 08:56:01 # ensures we do proper cleanup in finally. 08:56:01 clean_exit = False 08:56:01 08:56:01 # Rewind body position, if needed. Record current position 08:56:01 # for future rewinds in the event of a redirect/retry. 08:56:01 body_pos = set_file_position(body, body_pos) 08:56:01 08:56:01 try: 08:56:01 # Request a connection from the queue. 08:56:01 timeout_obj = self._get_timeout(timeout) 08:56:01 conn = self._get_conn(timeout=pool_timeout) 08:56:01 08:56:01 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 08:56:01 08:56:01 # Is this a closed/new connection that requires CONNECT tunnelling? 08:56:01 if self.proxy is not None and http_tunnel_required and conn.is_closed: 08:56:01 try: 08:56:01 self._prepare_proxy(conn) 08:56:01 except (BaseSSLError, OSError, SocketTimeout) as e: 08:56:01 self._raise_timeout( 08:56:01 err=e, url=self.proxy.url, timeout_value=conn.timeout 08:56:01 ) 08:56:01 raise 08:56:01 08:56:01 # If we're going to release the connection in ``finally:``, then 08:56:01 # the response doesn't need to know about the connection. Otherwise 08:56:01 # it will also try to release it and we'll have a double-release 08:56:01 # mess. 08:56:01 response_conn = conn if not release_conn else None 08:56:01 08:56:01 # Make the request on the HTTPConnection object 08:56:01 > response = self._make_request( 08:56:01 conn, 08:56:01 method, 08:56:01 url, 08:56:01 timeout=timeout_obj, 08:56:01 body=body, 08:56:01 headers=headers, 08:56:01 chunked=chunked, 08:56:01 retries=retries, 08:56:01 response_conn=response_conn, 08:56:01 preload_content=preload_content, 08:56:01 decode_content=decode_content, 08:56:01 **response_kw, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 08:56:01 conn.request( 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:441: in request 08:56:01 self.endheaders() 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1298: in endheaders 08:56:01 self._send_output(message_body, encode_chunked=encode_chunked) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1058: in _send_output 08:56:01 self.send(msg) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:996: in send 08:56:01 self.connect() 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 08:56:01 self.sock = self._new_conn() 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def _new_conn(self) -> socket.socket: 08:56:01 """Establish a socket connection and set nodelay settings on it. 08:56:01 08:56:01 :return: New socket connection. 08:56:01 """ 08:56:01 try: 08:56:01 sock = connection.create_connection( 08:56:01 (self._dns_host, self.port), 08:56:01 self.timeout, 08:56:01 source_address=self.source_address, 08:56:01 socket_options=self.socket_options, 08:56:01 ) 08:56:01 except socket.gaierror as e: 08:56:01 raise NameResolutionError(self.host, self, e) from e 08:56:01 except SocketTimeout as e: 08:56:01 raise ConnectTimeoutError( 08:56:01 self, 08:56:01 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 08:56:01 ) from e 08:56:01 08:56:01 except OSError as e: 08:56:01 > raise NewConnectionError( 08:56:01 self, f"Failed to establish a new connection: {e}" 08:56:01 ) from e 08:56:01 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 08:56:01 08:56:01 The above exception was the direct cause of the following exception: 08:56:01 08:56:01 self = 08:56:01 request = , stream = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 08:56:01 proxies = OrderedDict() 08:56:01 08:56:01 def send( 08:56:01 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 08:56:01 ): 08:56:01 """Sends PreparedRequest object. Returns Response object. 08:56:01 08:56:01 :param request: The :class:`PreparedRequest ` being sent. 08:56:01 :param stream: (optional) Whether to stream the request content. 08:56:01 :param timeout: (optional) How long to wait for the server to send 08:56:01 data before giving up, as a float, or a :ref:`(connect timeout, 08:56:01 read timeout) ` tuple. 08:56:01 :type timeout: float or tuple or urllib3 Timeout object 08:56:01 :param verify: (optional) Either a boolean, in which case it controls whether 08:56:01 we verify the server's TLS certificate, or a string, in which case it 08:56:01 must be a path to a CA bundle to use 08:56:01 :param cert: (optional) Any user-provided SSL certificate to be trusted. 08:56:01 :param proxies: (optional) The proxies dictionary to apply to the request. 08:56:01 :rtype: requests.Response 08:56:01 """ 08:56:01 08:56:01 try: 08:56:01 conn = self.get_connection_with_tls_context( 08:56:01 request, verify, proxies=proxies, cert=cert 08:56:01 ) 08:56:01 except LocationValueError as e: 08:56:01 raise InvalidURL(e, request=request) 08:56:01 08:56:01 self.cert_verify(conn, request.url, verify, cert) 08:56:01 url = self.request_url(request, proxies) 08:56:01 self.add_headers( 08:56:01 request, 08:56:01 stream=stream, 08:56:01 timeout=timeout, 08:56:01 verify=verify, 08:56:01 cert=cert, 08:56:01 proxies=proxies, 08:56:01 ) 08:56:01 08:56:01 chunked = not (request.body is None or "Content-Length" in request.headers) 08:56:01 08:56:01 if isinstance(timeout, tuple): 08:56:01 try: 08:56:01 connect, read = timeout 08:56:01 timeout = TimeoutSauce(connect=connect, read=read) 08:56:01 except ValueError: 08:56:01 raise ValueError( 08:56:01 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 08:56:01 f"or a single float to set both timeouts to the same value." 08:56:01 ) 08:56:01 elif isinstance(timeout, TimeoutSauce): 08:56:01 pass 08:56:01 else: 08:56:01 timeout = TimeoutSauce(connect=timeout, read=timeout) 08:56:01 08:56:01 try: 08:56:01 > resp = conn.urlopen( 08:56:01 method=request.method, 08:56:01 url=url, 08:56:01 body=request.body, 08:56:01 headers=request.headers, 08:56:01 redirect=False, 08:56:01 assert_same_host=False, 08:56:01 preload_content=False, 08:56:01 decode_content=False, 08:56:01 retries=self.max_retries, 08:56:01 timeout=timeout, 08:56:01 chunked=chunked, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/adapters.py:667: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 08:56:01 retries = retries.increment( 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 08:56:01 method = 'GET' 08:56:01 url = '/rests/data/transportpce-portmapping:network/nodes=XPDR-OC/mc-capabilities=XPDR-mcprofile' 08:56:01 response = None 08:56:01 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 08:56:01 _pool = 08:56:01 _stacktrace = 08:56:01 08:56:01 def increment( 08:56:01 self, 08:56:01 method: str | None = None, 08:56:01 url: str | None = None, 08:56:01 response: BaseHTTPResponse | None = None, 08:56:01 error: Exception | None = None, 08:56:01 _pool: ConnectionPool | None = None, 08:56:01 _stacktrace: TracebackType | None = None, 08:56:01 ) -> Self: 08:56:01 """Return a new Retry object with incremented retry counters. 08:56:01 08:56:01 :param response: A response object, or None, if the server did not 08:56:01 return a response. 08:56:01 :type response: :class:`~urllib3.response.BaseHTTPResponse` 08:56:01 :param Exception error: An error encountered during the request, or 08:56:01 None if the response was received successfully. 08:56:01 08:56:01 :return: A new ``Retry`` object. 08:56:01 """ 08:56:01 if self.total is False and error: 08:56:01 # Disabled, indicate to re-raise the error. 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 08:56:01 total = self.total 08:56:01 if total is not None: 08:56:01 total -= 1 08:56:01 08:56:01 connect = self.connect 08:56:01 read = self.read 08:56:01 redirect = self.redirect 08:56:01 status_count = self.status 08:56:01 other = self.other 08:56:01 cause = "unknown" 08:56:01 status = None 08:56:01 redirect_location = None 08:56:01 08:56:01 if error and self._is_connection_error(error): 08:56:01 # Connect retry? 08:56:01 if connect is False: 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 elif connect is not None: 08:56:01 connect -= 1 08:56:01 08:56:01 elif error and self._is_read_error(error): 08:56:01 # Read retry? 08:56:01 if read is False or method is None or not self._is_method_retryable(method): 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 elif read is not None: 08:56:01 read -= 1 08:56:01 08:56:01 elif error: 08:56:01 # Other retry? 08:56:01 if other is not None: 08:56:01 other -= 1 08:56:01 08:56:01 elif response and response.get_redirect_location(): 08:56:01 # Redirect retry? 08:56:01 if redirect is not None: 08:56:01 redirect -= 1 08:56:01 cause = "too many redirects" 08:56:01 response_redirect_location = response.get_redirect_location() 08:56:01 if response_redirect_location: 08:56:01 redirect_location = response_redirect_location 08:56:01 status = response.status 08:56:01 08:56:01 else: 08:56:01 # Incrementing because of a server error like a 500 in 08:56:01 # status_forcelist and the given method is in the allowed_methods 08:56:01 cause = ResponseError.GENERIC_ERROR 08:56:01 if response and response.status: 08:56:01 if status_count is not None: 08:56:01 status_count -= 1 08:56:01 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 08:56:01 status = response.status 08:56:01 08:56:01 history = self.history + ( 08:56:01 RequestHistory(method, url, error, status, redirect_location), 08:56:01 ) 08:56:01 08:56:01 new_retry = self.new( 08:56:01 total=total, 08:56:01 connect=connect, 08:56:01 read=read, 08:56:01 redirect=redirect, 08:56:01 status=status_count, 08:56:01 other=other, 08:56:01 history=history, 08:56:01 ) 08:56:01 08:56:01 if new_retry.is_exhausted(): 08:56:01 reason = error or ResponseError(cause) 08:56:01 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 08:56:01 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/transportpce-portmapping:network/nodes=XPDR-OC/mc-capabilities=XPDR-mcprofile (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 08:56:01 08:56:01 During handling of the above exception, another exception occurred: 08:56:01 08:56:01 self = 08:56:01 08:56:01 def test_09_check_mccapprofile(self): 08:56:01 > res = test_utils.get_portmapping_node_attr("XPDR-OC", "mc-capabilities", "XPDR-mcprofile") 08:56:01 08:56:01 transportpce_tests/OC/test01_portmapping.py:130: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 transportpce_tests/common/test_utils.py:705: in get_portmapping_node_attr 08:56:01 response = get_request(target_url) 08:56:01 transportpce_tests/common/test_utils.py:116: in get_request 08:56:01 return requests.request( 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/api.py:59: in request 08:56:01 return session.request(method=method, url=url, **kwargs) 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/sessions.py:589: in request 08:56:01 resp = self.send(prep, **send_kwargs) 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/sessions.py:703: in send 08:56:01 r = adapter.send(request, **kwargs) 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = 08:56:01 request = , stream = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 08:56:01 proxies = OrderedDict() 08:56:01 08:56:01 def send( 08:56:01 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 08:56:01 ): 08:56:01 """Sends PreparedRequest object. Returns Response object. 08:56:01 08:56:01 :param request: The :class:`PreparedRequest ` being sent. 08:56:01 :param stream: (optional) Whether to stream the request content. 08:56:01 :param timeout: (optional) How long to wait for the server to send 08:56:01 data before giving up, as a float, or a :ref:`(connect timeout, 08:56:01 read timeout) ` tuple. 08:56:01 :type timeout: float or tuple or urllib3 Timeout object 08:56:01 :param verify: (optional) Either a boolean, in which case it controls whether 08:56:01 we verify the server's TLS certificate, or a string, in which case it 08:56:01 must be a path to a CA bundle to use 08:56:01 :param cert: (optional) Any user-provided SSL certificate to be trusted. 08:56:01 :param proxies: (optional) The proxies dictionary to apply to the request. 08:56:01 :rtype: requests.Response 08:56:01 """ 08:56:01 08:56:01 try: 08:56:01 conn = self.get_connection_with_tls_context( 08:56:01 request, verify, proxies=proxies, cert=cert 08:56:01 ) 08:56:01 except LocationValueError as e: 08:56:01 raise InvalidURL(e, request=request) 08:56:01 08:56:01 self.cert_verify(conn, request.url, verify, cert) 08:56:01 url = self.request_url(request, proxies) 08:56:01 self.add_headers( 08:56:01 request, 08:56:01 stream=stream, 08:56:01 timeout=timeout, 08:56:01 verify=verify, 08:56:01 cert=cert, 08:56:01 proxies=proxies, 08:56:01 ) 08:56:01 08:56:01 chunked = not (request.body is None or "Content-Length" in request.headers) 08:56:01 08:56:01 if isinstance(timeout, tuple): 08:56:01 try: 08:56:01 connect, read = timeout 08:56:01 timeout = TimeoutSauce(connect=connect, read=read) 08:56:01 except ValueError: 08:56:01 raise ValueError( 08:56:01 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 08:56:01 f"or a single float to set both timeouts to the same value." 08:56:01 ) 08:56:01 elif isinstance(timeout, TimeoutSauce): 08:56:01 pass 08:56:01 else: 08:56:01 timeout = TimeoutSauce(connect=timeout, read=timeout) 08:56:01 08:56:01 try: 08:56:01 resp = conn.urlopen( 08:56:01 method=request.method, 08:56:01 url=url, 08:56:01 body=request.body, 08:56:01 headers=request.headers, 08:56:01 redirect=False, 08:56:01 assert_same_host=False, 08:56:01 preload_content=False, 08:56:01 decode_content=False, 08:56:01 retries=self.max_retries, 08:56:01 timeout=timeout, 08:56:01 chunked=chunked, 08:56:01 ) 08:56:01 08:56:01 except (ProtocolError, OSError) as err: 08:56:01 raise ConnectionError(err, request=request) 08:56:01 08:56:01 except MaxRetryError as e: 08:56:01 if isinstance(e.reason, ConnectTimeoutError): 08:56:01 # TODO: Remove this in 3.0.0: see #2811 08:56:01 if not isinstance(e.reason, NewConnectionError): 08:56:01 raise ConnectTimeout(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, ResponseError): 08:56:01 raise RetryError(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, _ProxyError): 08:56:01 raise ProxyError(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, _SSLError): 08:56:01 # This branch is for urllib3 v1.22 and later. 08:56:01 raise SSLError(e, request=request) 08:56:01 08:56:01 > raise ConnectionError(e, request=request) 08:56:01 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/transportpce-portmapping:network/nodes=XPDR-OC/mc-capabilities=XPDR-mcprofile (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 08:56:01 ----------------------------- Captured stdout call ----------------------------- 08:56:01 execution of test_09_check_mccapprofile 08:56:01 ______ TransportpceOCPortMappingTesting.test_10_xpdr_device_disconnection ______ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def _new_conn(self) -> socket.socket: 08:56:01 """Establish a socket connection and set nodelay settings on it. 08:56:01 08:56:01 :return: New socket connection. 08:56:01 """ 08:56:01 try: 08:56:01 > sock = connection.create_connection( 08:56:01 (self._dns_host, self.port), 08:56:01 self.timeout, 08:56:01 source_address=self.source_address, 08:56:01 socket_options=self.socket_options, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:199: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/connection.py:85: in create_connection 08:56:01 raise err 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 address = ('localhost', 8182), timeout = 10, source_address = None 08:56:01 socket_options = [(6, 1, 1)] 08:56:01 08:56:01 def create_connection( 08:56:01 address: tuple[str, int], 08:56:01 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 08:56:01 source_address: tuple[str, int] | None = None, 08:56:01 socket_options: _TYPE_SOCKET_OPTIONS | None = None, 08:56:01 ) -> socket.socket: 08:56:01 """Connect to *address* and return the socket object. 08:56:01 08:56:01 Convenience function. Connect to *address* (a 2-tuple ``(host, 08:56:01 port)``) and return the socket object. Passing the optional 08:56:01 *timeout* parameter will set the timeout on the socket instance 08:56:01 before attempting to connect. If no *timeout* is supplied, the 08:56:01 global default timeout setting returned by :func:`socket.getdefaulttimeout` 08:56:01 is used. If *source_address* is set it must be a tuple of (host, port) 08:56:01 for the socket to bind as a source address before making the connection. 08:56:01 An host of '' or port 0 tells the OS to use the default. 08:56:01 """ 08:56:01 08:56:01 host, port = address 08:56:01 if host.startswith("["): 08:56:01 host = host.strip("[]") 08:56:01 err = None 08:56:01 08:56:01 # Using the value from allowed_gai_family() in the context of getaddrinfo lets 08:56:01 # us select whether to work with IPv4 DNS records, IPv6 records, or both. 08:56:01 # The original create_connection function always returns all records. 08:56:01 family = allowed_gai_family() 08:56:01 08:56:01 try: 08:56:01 host.encode("idna") 08:56:01 except UnicodeError: 08:56:01 raise LocationParseError(f"'{host}', label empty or too long") from None 08:56:01 08:56:01 for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): 08:56:01 af, socktype, proto, canonname, sa = res 08:56:01 sock = None 08:56:01 try: 08:56:01 sock = socket.socket(af, socktype, proto) 08:56:01 08:56:01 # If provided, set socket level options before connecting. 08:56:01 _set_socket_options(sock, socket_options) 08:56:01 08:56:01 if timeout is not _DEFAULT_TIMEOUT: 08:56:01 sock.settimeout(timeout) 08:56:01 if source_address: 08:56:01 sock.bind(source_address) 08:56:01 > sock.connect(sa) 08:56:01 E ConnectionRefusedError: [Errno 111] Connection refused 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError 08:56:01 08:56:01 The above exception was the direct cause of the following exception: 08:56:01 08:56:01 self = 08:56:01 method = 'DELETE' 08:56:01 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-OC' 08:56:01 body = None 08:56:01 headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 08:56:01 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 08:56:01 redirect = False, assert_same_host = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None 08:56:01 release_conn = False, chunked = False, body_pos = None, preload_content = False 08:56:01 decode_content = False, response_kw = {} 08:56:01 parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-OC', query=None, fragment=None) 08:56:01 destination_scheme = None, conn = None, release_this_conn = True 08:56:01 http_tunnel_required = False, err = None, clean_exit = False 08:56:01 08:56:01 def urlopen( # type: ignore[override] 08:56:01 self, 08:56:01 method: str, 08:56:01 url: str, 08:56:01 body: _TYPE_BODY | None = None, 08:56:01 headers: typing.Mapping[str, str] | None = None, 08:56:01 retries: Retry | bool | int | None = None, 08:56:01 redirect: bool = True, 08:56:01 assert_same_host: bool = True, 08:56:01 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 08:56:01 pool_timeout: int | None = None, 08:56:01 release_conn: bool | None = None, 08:56:01 chunked: bool = False, 08:56:01 body_pos: _TYPE_BODY_POSITION | None = None, 08:56:01 preload_content: bool = True, 08:56:01 decode_content: bool = True, 08:56:01 **response_kw: typing.Any, 08:56:01 ) -> BaseHTTPResponse: 08:56:01 """ 08:56:01 Get a connection from the pool and perform an HTTP request. This is the 08:56:01 lowest level call for making a request, so you'll need to specify all 08:56:01 the raw details. 08:56:01 08:56:01 .. note:: 08:56:01 08:56:01 More commonly, it's appropriate to use a convenience method 08:56:01 such as :meth:`request`. 08:56:01 08:56:01 .. note:: 08:56:01 08:56:01 `release_conn` will only behave as expected if 08:56:01 `preload_content=False` because we want to make 08:56:01 `preload_content=False` the default behaviour someday soon without 08:56:01 breaking backwards compatibility. 08:56:01 08:56:01 :param method: 08:56:01 HTTP request method (such as GET, POST, PUT, etc.) 08:56:01 08:56:01 :param url: 08:56:01 The URL to perform the request on. 08:56:01 08:56:01 :param body: 08:56:01 Data to send in the request body, either :class:`str`, :class:`bytes`, 08:56:01 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 08:56:01 08:56:01 :param headers: 08:56:01 Dictionary of custom headers to send, such as User-Agent, 08:56:01 If-None-Match, etc. If None, pool headers are used. If provided, 08:56:01 these headers completely replace any pool-specific headers. 08:56:01 08:56:01 :param retries: 08:56:01 Configure the number of retries to allow before raising a 08:56:01 :class:`~urllib3.exceptions.MaxRetryError` exception. 08:56:01 08:56:01 If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 08:56:01 :class:`~urllib3.util.retry.Retry` object for fine-grained control 08:56:01 over different types of retries. 08:56:01 Pass an integer number to retry connection errors that many times, 08:56:01 but no other types of errors. Pass zero to never retry. 08:56:01 08:56:01 If ``False``, then retries are disabled and any exception is raised 08:56:01 immediately. Also, instead of raising a MaxRetryError on redirects, 08:56:01 the redirect response will be returned. 08:56:01 08:56:01 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 08:56:01 08:56:01 :param redirect: 08:56:01 If True, automatically handle redirects (status codes 301, 302, 08:56:01 303, 307, 308). Each redirect counts as a retry. Disabling retries 08:56:01 will disable redirect, too. 08:56:01 08:56:01 :param assert_same_host: 08:56:01 If ``True``, will make sure that the host of the pool requests is 08:56:01 consistent else will raise HostChangedError. When ``False``, you can 08:56:01 use the pool on an HTTP proxy and request foreign hosts. 08:56:01 08:56:01 :param timeout: 08:56:01 If specified, overrides the default timeout for this one 08:56:01 request. It may be a float (in seconds) or an instance of 08:56:01 :class:`urllib3.util.Timeout`. 08:56:01 08:56:01 :param pool_timeout: 08:56:01 If set and the pool is set to block=True, then this method will 08:56:01 block for ``pool_timeout`` seconds and raise EmptyPoolError if no 08:56:01 connection is available within the time period. 08:56:01 08:56:01 :param bool preload_content: 08:56:01 If True, the response's body will be preloaded into memory. 08:56:01 08:56:01 :param bool decode_content: 08:56:01 If True, will attempt to decode the body based on the 08:56:01 'content-encoding' header. 08:56:01 08:56:01 :param release_conn: 08:56:01 If False, then the urlopen call will not release the connection 08:56:01 back into the pool once a response is received (but will release if 08:56:01 you read the entire contents of the response such as when 08:56:01 `preload_content=True`). This is useful if you're not preloading 08:56:01 the response's content immediately. You will need to call 08:56:01 ``r.release_conn()`` on the response ``r`` to return the connection 08:56:01 back into the pool. If None, it takes the value of ``preload_content`` 08:56:01 which defaults to ``True``. 08:56:01 08:56:01 :param bool chunked: 08:56:01 If True, urllib3 will send the body using chunked transfer 08:56:01 encoding. Otherwise, urllib3 will send the body using the standard 08:56:01 content-length form. Defaults to False. 08:56:01 08:56:01 :param int body_pos: 08:56:01 Position to seek to in file-like body in the event of a retry or 08:56:01 redirect. Typically this won't need to be set because urllib3 will 08:56:01 auto-populate the value when needed. 08:56:01 """ 08:56:01 parsed_url = parse_url(url) 08:56:01 destination_scheme = parsed_url.scheme 08:56:01 08:56:01 if headers is None: 08:56:01 headers = self.headers 08:56:01 08:56:01 if not isinstance(retries, Retry): 08:56:01 retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 08:56:01 08:56:01 if release_conn is None: 08:56:01 release_conn = preload_content 08:56:01 08:56:01 # Check host 08:56:01 if assert_same_host and not self.is_same_host(url): 08:56:01 raise HostChangedError(self, url, retries) 08:56:01 08:56:01 # Ensure that the URL we're connecting to is properly encoded 08:56:01 if url.startswith("/"): 08:56:01 url = to_str(_encode_target(url)) 08:56:01 else: 08:56:01 url = to_str(parsed_url.url) 08:56:01 08:56:01 conn = None 08:56:01 08:56:01 # Track whether `conn` needs to be released before 08:56:01 # returning/raising/recursing. Update this variable if necessary, and 08:56:01 # leave `release_conn` constant throughout the function. That way, if 08:56:01 # the function recurses, the original value of `release_conn` will be 08:56:01 # passed down into the recursive call, and its value will be respected. 08:56:01 # 08:56:01 # See issue #651 [1] for details. 08:56:01 # 08:56:01 # [1] 08:56:01 release_this_conn = release_conn 08:56:01 08:56:01 http_tunnel_required = connection_requires_http_tunnel( 08:56:01 self.proxy, self.proxy_config, destination_scheme 08:56:01 ) 08:56:01 08:56:01 # Merge the proxy headers. Only done when not using HTTP CONNECT. We 08:56:01 # have to copy the headers dict so we can safely change it without those 08:56:01 # changes being reflected in anyone else's copy. 08:56:01 if not http_tunnel_required: 08:56:01 headers = headers.copy() # type: ignore[attr-defined] 08:56:01 headers.update(self.proxy_headers) # type: ignore[union-attr] 08:56:01 08:56:01 # Must keep the exception bound to a separate variable or else Python 3 08:56:01 # complains about UnboundLocalError. 08:56:01 err = None 08:56:01 08:56:01 # Keep track of whether we cleanly exited the except block. This 08:56:01 # ensures we do proper cleanup in finally. 08:56:01 clean_exit = False 08:56:01 08:56:01 # Rewind body position, if needed. Record current position 08:56:01 # for future rewinds in the event of a redirect/retry. 08:56:01 body_pos = set_file_position(body, body_pos) 08:56:01 08:56:01 try: 08:56:01 # Request a connection from the queue. 08:56:01 timeout_obj = self._get_timeout(timeout) 08:56:01 conn = self._get_conn(timeout=pool_timeout) 08:56:01 08:56:01 conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 08:56:01 08:56:01 # Is this a closed/new connection that requires CONNECT tunnelling? 08:56:01 if self.proxy is not None and http_tunnel_required and conn.is_closed: 08:56:01 try: 08:56:01 self._prepare_proxy(conn) 08:56:01 except (BaseSSLError, OSError, SocketTimeout) as e: 08:56:01 self._raise_timeout( 08:56:01 err=e, url=self.proxy.url, timeout_value=conn.timeout 08:56:01 ) 08:56:01 raise 08:56:01 08:56:01 # If we're going to release the connection in ``finally:``, then 08:56:01 # the response doesn't need to know about the connection. Otherwise 08:56:01 # it will also try to release it and we'll have a double-release 08:56:01 # mess. 08:56:01 response_conn = conn if not release_conn else None 08:56:01 08:56:01 # Make the request on the HTTPConnection object 08:56:01 > response = self._make_request( 08:56:01 conn, 08:56:01 method, 08:56:01 url, 08:56:01 timeout=timeout_obj, 08:56:01 body=body, 08:56:01 headers=headers, 08:56:01 chunked=chunked, 08:56:01 retries=retries, 08:56:01 response_conn=response_conn, 08:56:01 preload_content=preload_content, 08:56:01 decode_content=decode_content, 08:56:01 **response_kw, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:789: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:495: in _make_request 08:56:01 conn.request( 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:441: in request 08:56:01 self.endheaders() 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1298: in endheaders 08:56:01 self._send_output(message_body, encode_chunked=encode_chunked) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1058: in _send_output 08:56:01 self.send(msg) 08:56:01 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:996: in send 08:56:01 self.connect() 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:279: in connect 08:56:01 self.sock = self._new_conn() 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = 08:56:01 08:56:01 def _new_conn(self) -> socket.socket: 08:56:01 """Establish a socket connection and set nodelay settings on it. 08:56:01 08:56:01 :return: New socket connection. 08:56:01 """ 08:56:01 try: 08:56:01 sock = connection.create_connection( 08:56:01 (self._dns_host, self.port), 08:56:01 self.timeout, 08:56:01 source_address=self.source_address, 08:56:01 socket_options=self.socket_options, 08:56:01 ) 08:56:01 except socket.gaierror as e: 08:56:01 raise NameResolutionError(self.host, self, e) from e 08:56:01 except SocketTimeout as e: 08:56:01 raise ConnectTimeoutError( 08:56:01 self, 08:56:01 f"Connection to {self.host} timed out. (connect timeout={self.timeout})", 08:56:01 ) from e 08:56:01 08:56:01 except OSError as e: 08:56:01 > raise NewConnectionError( 08:56:01 self, f"Failed to establish a new connection: {e}" 08:56:01 ) from e 08:56:01 E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connection.py:214: NewConnectionError 08:56:01 08:56:01 The above exception was the direct cause of the following exception: 08:56:01 08:56:01 self = 08:56:01 request = , stream = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 08:56:01 proxies = OrderedDict() 08:56:01 08:56:01 def send( 08:56:01 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 08:56:01 ): 08:56:01 """Sends PreparedRequest object. Returns Response object. 08:56:01 08:56:01 :param request: The :class:`PreparedRequest ` being sent. 08:56:01 :param stream: (optional) Whether to stream the request content. 08:56:01 :param timeout: (optional) How long to wait for the server to send 08:56:01 data before giving up, as a float, or a :ref:`(connect timeout, 08:56:01 read timeout) ` tuple. 08:56:01 :type timeout: float or tuple or urllib3 Timeout object 08:56:01 :param verify: (optional) Either a boolean, in which case it controls whether 08:56:01 we verify the server's TLS certificate, or a string, in which case it 08:56:01 must be a path to a CA bundle to use 08:56:01 :param cert: (optional) Any user-provided SSL certificate to be trusted. 08:56:01 :param proxies: (optional) The proxies dictionary to apply to the request. 08:56:01 :rtype: requests.Response 08:56:01 """ 08:56:01 08:56:01 try: 08:56:01 conn = self.get_connection_with_tls_context( 08:56:01 request, verify, proxies=proxies, cert=cert 08:56:01 ) 08:56:01 except LocationValueError as e: 08:56:01 raise InvalidURL(e, request=request) 08:56:01 08:56:01 self.cert_verify(conn, request.url, verify, cert) 08:56:01 url = self.request_url(request, proxies) 08:56:01 self.add_headers( 08:56:01 request, 08:56:01 stream=stream, 08:56:01 timeout=timeout, 08:56:01 verify=verify, 08:56:01 cert=cert, 08:56:01 proxies=proxies, 08:56:01 ) 08:56:01 08:56:01 chunked = not (request.body is None or "Content-Length" in request.headers) 08:56:01 08:56:01 if isinstance(timeout, tuple): 08:56:01 try: 08:56:01 connect, read = timeout 08:56:01 timeout = TimeoutSauce(connect=connect, read=read) 08:56:01 except ValueError: 08:56:01 raise ValueError( 08:56:01 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 08:56:01 f"or a single float to set both timeouts to the same value." 08:56:01 ) 08:56:01 elif isinstance(timeout, TimeoutSauce): 08:56:01 pass 08:56:01 else: 08:56:01 timeout = TimeoutSauce(connect=timeout, read=timeout) 08:56:01 08:56:01 try: 08:56:01 > resp = conn.urlopen( 08:56:01 method=request.method, 08:56:01 url=url, 08:56:01 body=request.body, 08:56:01 headers=request.headers, 08:56:01 redirect=False, 08:56:01 assert_same_host=False, 08:56:01 preload_content=False, 08:56:01 decode_content=False, 08:56:01 retries=self.max_retries, 08:56:01 timeout=timeout, 08:56:01 chunked=chunked, 08:56:01 ) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/adapters.py:667: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/connectionpool.py:843: in urlopen 08:56:01 retries = retries.increment( 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = Retry(total=0, connect=None, read=False, redirect=None, status=None) 08:56:01 method = 'DELETE' 08:56:01 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-OC' 08:56:01 response = None 08:56:01 error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') 08:56:01 _pool = 08:56:01 _stacktrace = 08:56:01 08:56:01 def increment( 08:56:01 self, 08:56:01 method: str | None = None, 08:56:01 url: str | None = None, 08:56:01 response: BaseHTTPResponse | None = None, 08:56:01 error: Exception | None = None, 08:56:01 _pool: ConnectionPool | None = None, 08:56:01 _stacktrace: TracebackType | None = None, 08:56:01 ) -> Self: 08:56:01 """Return a new Retry object with incremented retry counters. 08:56:01 08:56:01 :param response: A response object, or None, if the server did not 08:56:01 return a response. 08:56:01 :type response: :class:`~urllib3.response.BaseHTTPResponse` 08:56:01 :param Exception error: An error encountered during the request, or 08:56:01 None if the response was received successfully. 08:56:01 08:56:01 :return: A new ``Retry`` object. 08:56:01 """ 08:56:01 if self.total is False and error: 08:56:01 # Disabled, indicate to re-raise the error. 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 08:56:01 total = self.total 08:56:01 if total is not None: 08:56:01 total -= 1 08:56:01 08:56:01 connect = self.connect 08:56:01 read = self.read 08:56:01 redirect = self.redirect 08:56:01 status_count = self.status 08:56:01 other = self.other 08:56:01 cause = "unknown" 08:56:01 status = None 08:56:01 redirect_location = None 08:56:01 08:56:01 if error and self._is_connection_error(error): 08:56:01 # Connect retry? 08:56:01 if connect is False: 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 elif connect is not None: 08:56:01 connect -= 1 08:56:01 08:56:01 elif error and self._is_read_error(error): 08:56:01 # Read retry? 08:56:01 if read is False or method is None or not self._is_method_retryable(method): 08:56:01 raise reraise(type(error), error, _stacktrace) 08:56:01 elif read is not None: 08:56:01 read -= 1 08:56:01 08:56:01 elif error: 08:56:01 # Other retry? 08:56:01 if other is not None: 08:56:01 other -= 1 08:56:01 08:56:01 elif response and response.get_redirect_location(): 08:56:01 # Redirect retry? 08:56:01 if redirect is not None: 08:56:01 redirect -= 1 08:56:01 cause = "too many redirects" 08:56:01 response_redirect_location = response.get_redirect_location() 08:56:01 if response_redirect_location: 08:56:01 redirect_location = response_redirect_location 08:56:01 status = response.status 08:56:01 08:56:01 else: 08:56:01 # Incrementing because of a server error like a 500 in 08:56:01 # status_forcelist and the given method is in the allowed_methods 08:56:01 cause = ResponseError.GENERIC_ERROR 08:56:01 if response and response.status: 08:56:01 if status_count is not None: 08:56:01 status_count -= 1 08:56:01 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) 08:56:01 status = response.status 08:56:01 08:56:01 history = self.history + ( 08:56:01 RequestHistory(method, url, error, status, redirect_location), 08:56:01 ) 08:56:01 08:56:01 new_retry = self.new( 08:56:01 total=total, 08:56:01 connect=connect, 08:56:01 read=read, 08:56:01 redirect=redirect, 08:56:01 status=status_count, 08:56:01 other=other, 08:56:01 history=history, 08:56:01 ) 08:56:01 08:56:01 if new_retry.is_exhausted(): 08:56:01 reason = error or ResponseError(cause) 08:56:01 > raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 08:56:01 E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-OC (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/urllib3/util/retry.py:519: MaxRetryError 08:56:01 08:56:01 During handling of the above exception, another exception occurred: 08:56:01 08:56:01 self = 08:56:01 08:56:01 def test_10_xpdr_device_disconnection(self): 08:56:01 > response = test_utils.unmount_device("XPDR-OC") 08:56:01 08:56:01 transportpce_tests/OC/test01_portmapping.py:137: 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 transportpce_tests/common/test_utils.py:585: in unmount_device 08:56:01 response = delete_request(url[RESTCONF_VERSION].format('{}', node)) 08:56:01 transportpce_tests/common/test_utils.py:133: in delete_request 08:56:01 return requests.request( 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/api.py:59: in request 08:56:01 return session.request(method=method, url=url, **kwargs) 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/sessions.py:589: in request 08:56:01 resp = self.send(prep, **send_kwargs) 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/sessions.py:703: in send 08:56:01 r = adapter.send(request, **kwargs) 08:56:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 08:56:01 08:56:01 self = 08:56:01 request = , stream = False 08:56:01 timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None 08:56:01 proxies = OrderedDict() 08:56:01 08:56:01 def send( 08:56:01 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 08:56:01 ): 08:56:01 """Sends PreparedRequest object. Returns Response object. 08:56:01 08:56:01 :param request: The :class:`PreparedRequest ` being sent. 08:56:01 :param stream: (optional) Whether to stream the request content. 08:56:01 :param timeout: (optional) How long to wait for the server to send 08:56:01 data before giving up, as a float, or a :ref:`(connect timeout, 08:56:01 read timeout) ` tuple. 08:56:01 :type timeout: float or tuple or urllib3 Timeout object 08:56:01 :param verify: (optional) Either a boolean, in which case it controls whether 08:56:01 we verify the server's TLS certificate, or a string, in which case it 08:56:01 must be a path to a CA bundle to use 08:56:01 :param cert: (optional) Any user-provided SSL certificate to be trusted. 08:56:01 :param proxies: (optional) The proxies dictionary to apply to the request. 08:56:01 :rtype: requests.Response 08:56:01 """ 08:56:01 08:56:01 try: 08:56:01 conn = self.get_connection_with_tls_context( 08:56:01 request, verify, proxies=proxies, cert=cert 08:56:01 ) 08:56:01 except LocationValueError as e: 08:56:01 raise InvalidURL(e, request=request) 08:56:01 08:56:01 self.cert_verify(conn, request.url, verify, cert) 08:56:01 url = self.request_url(request, proxies) 08:56:01 self.add_headers( 08:56:01 request, 08:56:01 stream=stream, 08:56:01 timeout=timeout, 08:56:01 verify=verify, 08:56:01 cert=cert, 08:56:01 proxies=proxies, 08:56:01 ) 08:56:01 08:56:01 chunked = not (request.body is None or "Content-Length" in request.headers) 08:56:01 08:56:01 if isinstance(timeout, tuple): 08:56:01 try: 08:56:01 connect, read = timeout 08:56:01 timeout = TimeoutSauce(connect=connect, read=read) 08:56:01 except ValueError: 08:56:01 raise ValueError( 08:56:01 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 08:56:01 f"or a single float to set both timeouts to the same value." 08:56:01 ) 08:56:01 elif isinstance(timeout, TimeoutSauce): 08:56:01 pass 08:56:01 else: 08:56:01 timeout = TimeoutSauce(connect=timeout, read=timeout) 08:56:01 08:56:01 try: 08:56:01 resp = conn.urlopen( 08:56:01 method=request.method, 08:56:01 url=url, 08:56:01 body=request.body, 08:56:01 headers=request.headers, 08:56:01 redirect=False, 08:56:01 assert_same_host=False, 08:56:01 preload_content=False, 08:56:01 decode_content=False, 08:56:01 retries=self.max_retries, 08:56:01 timeout=timeout, 08:56:01 chunked=chunked, 08:56:01 ) 08:56:01 08:56:01 except (ProtocolError, OSError) as err: 08:56:01 raise ConnectionError(err, request=request) 08:56:01 08:56:01 except MaxRetryError as e: 08:56:01 if isinstance(e.reason, ConnectTimeoutError): 08:56:01 # TODO: Remove this in 3.0.0: see #2811 08:56:01 if not isinstance(e.reason, NewConnectionError): 08:56:01 raise ConnectTimeout(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, ResponseError): 08:56:01 raise RetryError(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, _ProxyError): 08:56:01 raise ProxyError(e, request=request) 08:56:01 08:56:01 if isinstance(e.reason, _SSLError): 08:56:01 # This branch is for urllib3 v1.22 and later. 08:56:01 raise SSLError(e, request=request) 08:56:01 08:56:01 > raise ConnectionError(e, request=request) 08:56:01 E requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-OC (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) 08:56:01 08:56:01 ../.tox/tests190/lib/python3.11/site-packages/requests/adapters.py:700: ConnectionError 08:56:01 ----------------------------- Captured stdout call ----------------------------- 08:56:01 execution of test_10_xpdr_device_disconnection 08:56:01 =========================== short test summary info ============================ 08:56:01 FAILED transportpce_tests/OC/test01_portmapping.py::TransportpceOCPortMappingTesting::test_01_meta_data_insertion 08:56:01 FAILED transportpce_tests/OC/test01_portmapping.py::TransportpceOCPortMappingTesting::test_02_catlog_input_insertion 08:56:01 FAILED transportpce_tests/OC/test01_portmapping.py::TransportpceOCPortMappingTesting::test_03_xpdr_device_connection 08:56:01 FAILED transportpce_tests/OC/test01_portmapping.py::TransportpceOCPortMappingTesting::test_04_xpdr_device_connected 08:56:01 FAILED transportpce_tests/OC/test01_portmapping.py::TransportpceOCPortMappingTesting::test_05_xpdr_portmapping_info 08:56:01 FAILED transportpce_tests/OC/test01_portmapping.py::TransportpceOCPortMappingTesting::test_06_mpdr_portmapping_NETWORK1 08:56:01 FAILED transportpce_tests/OC/test01_portmapping.py::TransportpceOCPortMappingTesting::test_07_mpdr_portmapping_CLIENT1 08:56:01 FAILED transportpce_tests/OC/test01_portmapping.py::TransportpceOCPortMappingTesting::test_08_mpdr_switching_pool 08:56:01 FAILED transportpce_tests/OC/test01_portmapping.py::TransportpceOCPortMappingTesting::test_09_check_mccapprofile 08:56:01 FAILED transportpce_tests/OC/test01_portmapping.py::TransportpceOCPortMappingTesting::test_10_xpdr_device_disconnection 08:56:01 ERROR transportpce_tests/OC/test01_portmapping.py::TransportpceOCPortMappingTesting::test_10_xpdr_device_disconnection 08:56:01 10 failed, 1 error in 219.88s (0:03:39) 08:56:01 tests190: exit 1 (220.39 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh OC pid=31976 08:56:56 ................................................... [100%] 09:02:05 51 passed in 389.25s (0:06:29) 09:02:05 pytest -q transportpce_tests/tapi/test02_full_topology.py 09:03:11 ............................... [100%] 09:06:54 31 passed in 288.69s (0:04:48) 09:06:54 pytest -q transportpce_tests/tapi/test03_tapi_device_change_notifications.py 09:07:55 ....................................................................... [100%] 09:11:39 71 passed in 285.54s (0:04:45) 09:11:39 pytest -q transportpce_tests/tapi/test04_topo_extension.py 09:12:44 ................... [100%] 09:14:00 19 passed in 140.61s (0:02:20) 09:14:00 tests190: FAIL ✖ in 3 minutes 48.83 seconds 09:14:00 tests_tapi: OK ✔ in 18 minutes 31.49 seconds 09:14:00 tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 09:14:06 tests71: freeze> python -m pip freeze --all 09:14:06 tests71: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 09:14:06 tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 09:14:06 using environment variables from ./karaf71.env 09:14:06 pytest -q transportpce_tests/7.1/test01_portmapping.py 09:14:37 ............ [100%] 09:14:50 12 passed in 43.86s 09:14:50 pytest -q transportpce_tests/7.1/test02_otn_renderer.py 09:15:16 .............................................................. [100%] 09:17:26 62 passed in 155.49s (0:02:35) 09:17:26 pytest -q transportpce_tests/7.1/test03_renderer_or_modes.py 09:17:57 ................................................ [100%] 09:19:41 48 passed in 134.28s (0:02:14) 09:19:41 pytest -q transportpce_tests/7.1/test04_renderer_regen_mode.py 09:20:07 ...................... [100%] 09:20:54 22 passed in 73.12s (0:01:13) 09:20:54 tests71: OK ✔ in 6 minutes 53.66 seconds 09:20:54 tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 09:21:00 tests221: freeze> python -m pip freeze --all 09:21:00 tests221: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 09:21:00 tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 09:21:00 using environment variables from ./karaf221.env 09:21:00 pytest -q transportpce_tests/2.2.1/test01_portmapping.py 09:21:36 ................................... [100%] 09:22:15 35 passed in 74.88s (0:01:14) 09:22:15 pytest -q transportpce_tests/2.2.1/test02_topo_portmapping.py 09:22:46 ...... [100%] 09:23:00 6 passed in 44.19s 09:23:00 pytest -q transportpce_tests/2.2.1/test03_topology.py 09:23:42 ............................................ [100%] 09:25:16 44 passed in 135.70s (0:02:15) 09:25:16 pytest -q transportpce_tests/2.2.1/test04_otn_topology.py 09:25:50 ............ [100%] 09:26:14 12 passed in 58.29s 09:26:14 pytest -q transportpce_tests/2.2.1/test05_flex_grid.py 09:26:39 ................ [100%] 09:28:08 16 passed in 113.58s (0:01:53) 09:28:08 pytest -q transportpce_tests/2.2.1/test06_renderer_service_path_nominal.py 09:28:37 ............................... [100%] 09:28:43 31 passed in 34.94s 09:28:43 pytest -q transportpce_tests/2.2.1/test07_otn_renderer.py 09:29:18 .......................... [100%] 09:30:13 26 passed in 89.73s (0:01:29) 09:30:13 pytest -q transportpce_tests/2.2.1/test08_otn_sh_renderer.py 09:30:49 ...................... [100%] 09:31:52 22 passed in 98.59s (0:01:38) 09:31:52 pytest -q transportpce_tests/2.2.1/test09_olm.py 09:32:32 ........................................ [100%] 09:34:53 40 passed in 180.60s (0:03:00) 09:34:53 pytest -q transportpce_tests/2.2.1/test11_otn_end2end.py 09:35:35 ........................................................................ [ 74%] 09:41:11 ......................... [100%] 09:43:03 97 passed in 489.77s (0:08:09) 09:43:03 pytest -q transportpce_tests/2.2.1/test12_end2end.py 09:43:43 ...................................................... [100%] 09:50:30 54 passed in 447.40s (0:07:27) 09:50:30 pytest -q transportpce_tests/2.2.1/test14_otn_switch_end2end.py 09:51:23 ........................................................................ [ 71%] 09:56:32 ............................. [100%] 09:58:41 101 passed in 490.64s (0:08:10) 09:58:41 pytest -q transportpce_tests/2.2.1/test15_otn_end2end_with_intermediate_switch.py 09:59:34 ........................................................................ [ 67%] 10:05:20 ................................... [100%] 10:11:40 107 passed in 779.02s (0:12:59) 10:11:41 tests221: OK ✔ in 50 minutes 46.55 seconds 10:11:41 tests121: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 10:11:51 tests121: freeze> python -m pip freeze --all 10:11:51 tests121: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 10:11:51 tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 10:11:51 using environment variables from ./karaf121.env 10:11:51 pytest -q transportpce_tests/1.2.1/test01_portmapping.py 10:12:32 ..................... [100%] 10:16:21 21 passed in 269.42s (0:04:29) 10:16:21 pytest -q transportpce_tests/1.2.1/test02_topo_portmapping.py 10:16:53 ...... [100%] 10:17:07 6 passed in 45.97s 10:17:07 pytest -q transportpce_tests/1.2.1/test03_topology.py 10:17:51 ............................................ [100%] 10:19:26 44 passed in 138.24s (0:02:18) 10:19:26 pytest -q transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py 10:19:57 ........................ [100%] 10:20:49 24 passed in 82.78s (0:01:22) 10:20:49 pytest -q transportpce_tests/1.2.1/test05_olm.py 10:21:28 ........................................ [100%] 10:23:50 40 passed in 181.29s (0:03:01) 10:23:50 pytest -q transportpce_tests/1.2.1/test06_end2end.py 10:24:29 ...................................................... [100%] 10:32:44 54 passed in 533.55s (0:08:53) 10:32:44 tests121: OK ✔ in 21 minutes 3.45 seconds 10:32:44 tests_hybrid: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 10:32:50 tests_hybrid: freeze> python -m pip freeze --all 10:32:50 tests_hybrid: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 10:32:50 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid 10:32:50 using environment variables from ./karaf121.env 10:32:50 pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py 10:33:36 ................................................... [100%] 10:35:22 51 passed in 152.11s (0:02:32) 10:35:22 pytest -q transportpce_tests/hybrid/test02_B100G_end2end.py 10:36:04 ........................................................................ [ 66%] 10:40:25 ..................................... [100%] 10:42:31 109 passed in 428.20s (0:07:08) 10:42:31 pytest -q transportpce_tests/hybrid/test03_autonomous_reroute.py 10:43:20 ..................................................... [100%] 10:46:52 53 passed in 260.57s (0:04:20) 10:46:52 tests_hybrid: OK ✔ in 14 minutes 7.69 seconds 10:46:52 buildlighty: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 10:46:57 buildlighty: freeze> python -m pip freeze --all 10:46:58 buildlighty: bcrypt==4.2.1,certifi==2024.8.30,cffi==1.17.1,charset-normalizer==3.4.0,cryptography==44.0.0,dict2xml==1.7.6,idna==3.10,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.2,packaging==24.2,paramiko==3.5.0,pip==24.3.1,pluggy==1.5.0,psutil==6.1.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.3,requests==2.32.3,setuptools==75.6.0,urllib3==2.2.3,wheel==0.45.1 10:46:58 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh 10:46:58 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED 10:47:17 buildcontroller: OK (115.95=setup[9.31]+cmd[106.64] seconds) 10:47:17 testsPCE: OK (299.88=setup[71.94]+cmd[227.94] seconds) 10:47:17 sims: OK (10.81=setup[7.13]+cmd[3.68] seconds) 10:47:17 build_karaf_tests121: OK (55.11=setup[7.10]+cmd[48.01] seconds) 10:47:17 tests121: OK (1263.45=setup[10.80]+cmd[1252.65] seconds) 10:47:17 build_karaf_tests221: OK (53.19=setup[7.04]+cmd[46.15] seconds) 10:47:17 tests_tapi: OK (1111.49=setup[6.45]+cmd[1105.04] seconds) 10:47:17 tests221: OK (3046.55=setup[6.25]+cmd[3040.30] seconds) 10:47:17 build_karaf_tests71: OK (48.94=setup[11.93]+cmd[37.00] seconds) 10:47:17 tests71: OK (413.66=setup[6.02]+cmd[407.64] seconds) 10:47:17 sims190: OK (7.87=setup[7.85]+cmd[0.02] seconds) 10:47:17 build_karaf_tests190: OK (48.16=setup[6.82]+cmd[41.34] seconds) 10:47:17 tests190: FAIL code 1 (228.83=setup[8.39]+cmd[0.06,220.39] seconds) 10:47:17 build_karaf_tests_hybrid: OK (49.50=setup[6.31]+cmd[43.19] seconds) 10:47:17 tests_hybrid: OK (847.69=setup[6.12]+cmd[841.57] seconds) 10:47:17 buildlighty: OK (25.62=setup[5.99]+cmd[19.63] seconds) 10:47:17 docs: OK (60.46=setup[58.18]+cmd[2.28] seconds) 10:47:17 docs-linkcheck: OK (62.33=setup[57.60]+cmd[4.73] seconds) 10:47:17 checkbashisms: OK (2.89=setup[1.92]+cmd[0.02,0.05,0.90] seconds) 10:47:17 pre-commit: FAIL code 1 (54.48=setup[3.31]+cmd[0.01,0.02,51.13] seconds) 10:47:17 pylint: FAIL code 1 (23.72=setup[4.75]+cmd[18.97] seconds) 10:47:17 evaluation failed :( (7124.37 seconds) 10:47:17 + tox_status=255 10:47:17 + echo '---> Completed tox runs' 10:47:17 ---> Completed tox runs 10:47:17 + for i in .tox/*/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 ++ echo .tox/build_karaf_tests121/log 10:47:17 + tox_env=build_karaf_tests121 10:47:17 + cp -r .tox/build_karaf_tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests121 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/build_karaf_tests190/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=build_karaf_tests190 10:47:17 + cp -r .tox/build_karaf_tests190/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests190 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/build_karaf_tests221/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=build_karaf_tests221 10:47:17 + cp -r .tox/build_karaf_tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests221 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/build_karaf_tests71/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=build_karaf_tests71 10:47:17 + cp -r .tox/build_karaf_tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests71 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/build_karaf_tests_hybrid/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=build_karaf_tests_hybrid 10:47:17 + cp -r .tox/build_karaf_tests_hybrid/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests_hybrid 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/buildcontroller/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=buildcontroller 10:47:17 + cp -r .tox/buildcontroller/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildcontroller 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/buildlighty/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=buildlighty 10:47:17 + cp -r .tox/buildlighty/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildlighty 10:47:17 + for i in .tox/*/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 ++ echo .tox/checkbashisms/log 10:47:17 + tox_env=checkbashisms 10:47:17 + cp -r .tox/checkbashisms/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/checkbashisms 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/docs-linkcheck/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=docs-linkcheck 10:47:17 + cp -r .tox/docs-linkcheck/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs-linkcheck 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/docs/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=docs 10:47:17 + cp -r .tox/docs/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/pre-commit/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=pre-commit 10:47:17 + cp -r .tox/pre-commit/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pre-commit 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/pylint/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=pylint 10:47:17 + cp -r .tox/pylint/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pylint 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/sims/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=sims 10:47:17 + cp -r .tox/sims/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/sims 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/sims190/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=sims190 10:47:17 + cp -r .tox/sims190/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/sims190 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/tests121/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=tests121 10:47:17 + cp -r .tox/tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests121 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/tests190/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=tests190 10:47:17 + cp -r .tox/tests190/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests190 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/tests221/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=tests221 10:47:17 + cp -r .tox/tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests221 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/tests71/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=tests71 10:47:17 + cp -r .tox/tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests71 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/testsPCE/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=testsPCE 10:47:17 + cp -r .tox/testsPCE/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/testsPCE 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/tests_hybrid/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=tests_hybrid 10:47:17 + cp -r .tox/tests_hybrid/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_hybrid 10:47:17 + for i in .tox/*/log 10:47:17 ++ echo .tox/tests_tapi/log 10:47:17 ++ awk -F/ '{print $2}' 10:47:17 + tox_env=tests_tapi 10:47:17 + cp -r .tox/tests_tapi/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_tapi 10:47:17 + DOC_DIR=docs/_build/html 10:47:17 + [[ -d docs/_build/html ]] 10:47:17 + echo '---> Archiving generated docs' 10:47:17 ---> Archiving generated docs 10:47:17 + mv docs/_build/html /w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 10:47:17 + echo '---> tox-run.sh ends' 10:47:17 ---> tox-run.sh ends 10:47:17 + test 255 -eq 0 10:47:17 + exit 255 10:47:17 ++ '[' 1 = 1 ']' 10:47:17 ++ '[' -x /usr/bin/clear_console ']' 10:47:17 ++ /usr/bin/clear_console -q 10:47:17 Build step 'Execute shell' marked build as failure 10:47:17 $ ssh-agent -k 10:47:17 unset SSH_AUTH_SOCK; 10:47:17 unset SSH_AGENT_PID; 10:47:17 echo Agent pid 12997 killed; 10:47:18 [ssh-agent] Stopped. 10:47:18 [PostBuildScript] - [INFO] Executing post build scripts. 10:47:18 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins17906662187250579398.sh 10:47:18 ---> sysstat.sh 10:47:18 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins15593294061840178892.sh 10:47:18 ---> package-listing.sh 10:47:18 ++ tr '[:upper:]' '[:lower:]' 10:47:18 ++ facter osfamily 10:47:18 + OS_FAMILY=debian 10:47:18 + workspace=/w/workspace/transportpce-tox-verify-transportpce-master 10:47:18 + START_PACKAGES=/tmp/packages_start.txt 10:47:18 + END_PACKAGES=/tmp/packages_end.txt 10:47:18 + DIFF_PACKAGES=/tmp/packages_diff.txt 10:47:18 + PACKAGES=/tmp/packages_start.txt 10:47:18 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 10:47:18 + PACKAGES=/tmp/packages_end.txt 10:47:18 + case "${OS_FAMILY}" in 10:47:18 + dpkg -l 10:47:18 + grep '^ii' 10:47:19 + '[' -f /tmp/packages_start.txt ']' 10:47:19 + '[' -f /tmp/packages_end.txt ']' 10:47:19 + diff /tmp/packages_start.txt /tmp/packages_end.txt 10:47:19 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 10:47:19 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 10:47:19 + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 10:47:19 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins8945528607614494267.sh 10:47:19 ---> capture-instance-metadata.sh 10:47:19 Setup pyenv: 10:47:19 system 10:47:19 3.8.20 10:47:19 3.9.20 10:47:19 3.10.15 10:47:19 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:47:19 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-LvpY from file:/tmp/.os_lf_venv 10:47:20 lf-activate-venv(): INFO: Installing: lftools 10:47:32 lf-activate-venv(): INFO: Adding /tmp/venv-LvpY/bin to PATH 10:47:32 INFO: Running in OpenStack, capturing instance metadata 10:47:33 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins1167153896431350739.sh 10:47:33 provisioning config files... 10:47:33 Could not find credentials [logs] for transportpce-tox-verify-transportpce-master #2279 10:47:33 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/transportpce-tox-verify-transportpce-master@tmp/config17741200272885358275tmp 10:47:33 Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] 10:47:33 Run condition [Regular expression match] enabling perform for step [Provide Configuration files] 10:47:33 provisioning config files... 10:47:33 copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials 10:47:33 [EnvInject] - Injecting environment variables from a build step. 10:47:33 [EnvInject] - Injecting as environment variables the properties content 10:47:33 SERVER_ID=logs 10:47:33 10:47:33 [EnvInject] - Variables injected successfully. 10:47:33 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins2000744622952977861.sh 10:47:33 ---> create-netrc.sh 10:47:34 WARN: Log server credential not found. 10:47:34 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins5447294237994556247.sh 10:47:34 ---> python-tools-install.sh 10:47:34 Setup pyenv: 10:47:34 system 10:47:34 3.8.20 10:47:34 3.9.20 10:47:34 3.10.15 10:47:34 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:47:34 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-LvpY from file:/tmp/.os_lf_venv 10:47:35 lf-activate-venv(): INFO: Installing: lftools 10:47:43 lf-activate-venv(): INFO: Adding /tmp/venv-LvpY/bin to PATH 10:47:43 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins7048916874869959528.sh 10:47:43 ---> sudo-logs.sh 10:47:43 Archiving 'sudo' log.. 10:47:43 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins13474740512875610795.sh 10:47:43 ---> job-cost.sh 10:47:43 Setup pyenv: 10:47:43 system 10:47:43 3.8.20 10:47:43 3.9.20 10:47:43 3.10.15 10:47:43 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:47:44 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-LvpY from file:/tmp/.os_lf_venv 10:47:44 lf-activate-venv(): INFO: Installing: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 10:47:53 lf-activate-venv(): INFO: Adding /tmp/venv-LvpY/bin to PATH 10:47:53 INFO: No Stack... 10:47:53 INFO: Retrieving Pricing Info for: v3-standard-4 10:47:54 INFO: Archiving Costs 10:47:54 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins5035707180861638599.sh 10:47:54 ---> logs-deploy.sh 10:47:54 Setup pyenv: 10:47:54 system 10:47:54 3.8.20 10:47:54 3.9.20 10:47:54 3.10.15 10:47:54 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 10:47:54 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-LvpY from file:/tmp/.os_lf_venv 10:47:55 lf-activate-venv(): INFO: Installing: lftools 10:48:05 lf-activate-venv(): INFO: Adding /tmp/venv-LvpY/bin to PATH 10:48:05 WARNING: Nexus logging server not set 10:48:05 INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/transportpce-tox-verify-transportpce-master/2279/ 10:48:05 INFO: archiving logs to S3 10:48:07 ---> uname -a: 10:48:07 Linux prd-ubuntu2004-docker-4c-16g-11399 5.4.0-200-generic #220-Ubuntu SMP Fri Sep 27 13:19:16 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux 10:48:07 10:48:07 10:48:07 ---> lscpu: 10:48:07 Architecture: x86_64 10:48:07 CPU op-mode(s): 32-bit, 64-bit 10:48:07 Byte Order: Little Endian 10:48:07 Address sizes: 40 bits physical, 48 bits virtual 10:48:07 CPU(s): 4 10:48:07 On-line CPU(s) list: 0-3 10:48:07 Thread(s) per core: 1 10:48:07 Core(s) per socket: 1 10:48:07 Socket(s): 4 10:48:07 NUMA node(s): 1 10:48:07 Vendor ID: AuthenticAMD 10:48:07 CPU family: 23 10:48:07 Model: 49 10:48:07 Model name: AMD EPYC-Rome Processor 10:48:07 Stepping: 0 10:48:07 CPU MHz: 2800.000 10:48:07 BogoMIPS: 5600.00 10:48:07 Virtualization: AMD-V 10:48:07 Hypervisor vendor: KVM 10:48:07 Virtualization type: full 10:48:07 L1d cache: 128 KiB 10:48:07 L1i cache: 128 KiB 10:48:07 L2 cache: 2 MiB 10:48:07 L3 cache: 64 MiB 10:48:07 NUMA node0 CPU(s): 0-3 10:48:07 Vulnerability Gather data sampling: Not affected 10:48:07 Vulnerability Itlb multihit: Not affected 10:48:07 Vulnerability L1tf: Not affected 10:48:07 Vulnerability Mds: Not affected 10:48:07 Vulnerability Meltdown: Not affected 10:48:07 Vulnerability Mmio stale data: Not affected 10:48:07 Vulnerability Retbleed: Vulnerable 10:48:07 Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp 10:48:07 Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 10:48:07 Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 10:48:07 Vulnerability Srbds: Not affected 10:48:07 Vulnerability Tsx async abort: Not affected 10:48:07 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibrs ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero xsaveerptr wbnoinvd arat npt nrip_save umip rdpid arch_capabilities 10:48:07 10:48:07 10:48:07 ---> nproc: 10:48:07 4 10:48:07 10:48:07 10:48:07 ---> df -h: 10:48:07 Filesystem Size Used Avail Use% Mounted on 10:48:07 udev 7.8G 0 7.8G 0% /dev 10:48:07 tmpfs 1.6G 1.1M 1.6G 1% /run 10:48:07 /dev/vda1 78G 18G 60G 24% / 10:48:07 tmpfs 7.9G 0 7.9G 0% /dev/shm 10:48:07 tmpfs 5.0M 0 5.0M 0% /run/lock 10:48:07 tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup 10:48:07 /dev/loop0 68M 68M 0 100% /snap/lxd/22753 10:48:07 /dev/loop1 62M 62M 0 100% /snap/core20/1405 10:48:07 /dev/loop2 44M 44M 0 100% /snap/snapd/15177 10:48:07 /dev/vda15 105M 6.1M 99M 6% /boot/efi 10:48:07 tmpfs 1.6G 0 1.6G 0% /run/user/1001 10:48:07 /dev/loop3 64M 64M 0 100% /snap/core20/2434 10:48:07 /dev/loop4 92M 92M 0 100% /snap/lxd/29619 10:48:07 10:48:07 10:48:07 ---> free -m: 10:48:07 total used free shared buff/cache available 10:48:07 Mem: 15997 2254 4702 1 9040 13403 10:48:07 Swap: 1023 0 1023 10:48:07 10:48:07 10:48:07 ---> ip addr: 10:48:07 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 10:48:07 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 10:48:07 inet 127.0.0.1/8 scope host lo 10:48:07 valid_lft forever preferred_lft forever 10:48:07 inet6 ::1/128 scope host 10:48:07 valid_lft forever preferred_lft forever 10:48:07 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 10:48:07 link/ether fa:16:3e:98:c7:21 brd ff:ff:ff:ff:ff:ff 10:48:07 inet 10.30.171.76/23 metric 100 brd 10.30.171.255 scope global dynamic ens3 10:48:07 valid_lft 79102sec preferred_lft 79102sec 10:48:07 inet6 fe80::f816:3eff:fe98:c721/64 scope link 10:48:07 valid_lft forever preferred_lft forever 10:48:07 3: docker0: mtu 1458 qdisc noqueue state DOWN group default 10:48:07 link/ether 02:42:5c:ea:c9:76 brd ff:ff:ff:ff:ff:ff 10:48:07 inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 10:48:07 valid_lft forever preferred_lft forever 10:48:07 10:48:07 10:48:07 ---> sar -b -r -n DEV: 10:48:07 Linux 5.4.0-200-generic (prd-ubuntu2004-docker-4c-16g-11399) 11/29/24 _x86_64_ (4 CPU) 10:48:07 10:48:07 08:46:32 LINUX RESTART (4 CPU) 10:48:07 10:48:07 08:47:02 tps rtps wtps dtps bread/s bwrtn/s bdscd/s 10:48:07 08:48:01 340.52 152.48 188.04 0.00 11938.18 12988.31 0.00 10:48:07 08:49:01 142.26 23.91 118.35 0.00 1882.35 19261.21 0.00 10:48:07 08:50:01 145.24 18.65 126.60 0.00 920.11 47508.88 0.00 10:48:07 08:51:01 123.83 1.07 122.76 0.00 55.45 76132.22 0.00 10:48:07 08:52:01 203.32 11.31 192.00 0.00 4544.04 151546.21 0.00 10:48:07 08:53:01 169.33 5.05 164.28 0.00 355.08 59434.72 0.00 10:48:07 08:54:01 85.50 0.00 85.50 0.00 0.00 1492.02 0.00 10:48:07 08:55:01 76.04 0.05 75.99 0.00 3.47 1193.93 0.00 10:48:07 08:56:01 185.97 0.35 185.62 0.00 23.33 4602.70 0.00 10:48:07 08:57:01 96.85 2.10 94.75 0.00 131.82 9979.61 0.00 10:48:07 08:58:01 3.45 0.25 3.20 0.00 4.13 106.25 0.00 10:48:07 08:59:01 2.07 0.07 2.00 0.00 1.20 58.79 0.00 10:48:07 09:00:01 2.03 0.00 2.03 0.00 0.00 34.26 0.00 10:48:07 09:01:01 1.57 0.00 1.57 0.00 0.00 21.73 0.00 10:48:07 09:02:01 68.53 3.60 64.93 0.00 417.46 1422.59 0.00 10:48:07 09:03:01 64.42 1.20 63.22 0.00 145.84 2254.29 0.00 10:48:07 09:04:01 49.14 0.00 49.14 0.00 0.00 751.21 0.00 10:48:07 09:05:01 3.77 0.02 3.75 0.00 0.27 77.04 0.00 10:48:07 09:06:01 1.93 0.00 1.93 0.00 0.00 33.72 0.00 10:48:07 09:07:01 86.47 0.00 86.47 0.00 0.00 1668.50 0.00 10:48:07 09:08:01 91.62 0.00 91.62 0.00 0.00 2508.65 0.00 10:48:07 09:09:01 3.67 0.77 2.90 0.00 21.33 69.98 0.00 10:48:07 09:10:01 1.75 0.02 1.73 0.00 0.13 34.93 0.00 10:48:07 09:11:01 2.27 0.00 2.27 0.00 0.00 45.73 0.00 10:48:07 09:12:01 103.67 0.00 103.67 0.00 0.00 2703.73 0.00 10:48:07 09:13:01 84.19 0.02 84.17 0.00 0.13 1996.07 0.00 10:48:07 09:14:01 72.00 0.03 71.97 0.00 2.40 1546.28 0.00 10:48:07 09:15:01 136.85 2.85 134.01 0.00 74.78 11322.49 0.00 10:48:07 09:16:01 67.46 0.48 66.97 0.00 15.33 1233.13 0.00 10:48:07 09:17:01 2.75 0.05 2.70 0.00 1.07 47.06 0.00 10:48:07 09:18:01 79.67 0.00 79.67 0.00 0.00 1185.80 0.00 10:48:07 09:19:01 1.72 0.00 1.72 0.00 0.00 33.99 0.00 10:48:07 09:20:01 23.71 0.00 23.71 0.00 0.00 408.60 0.00 10:48:07 09:21:01 67.11 0.00 67.11 0.00 0.00 1156.21 0.00 10:48:07 09:22:01 89.30 0.00 89.30 0.00 0.00 3579.94 0.00 10:48:07 09:23:01 91.12 0.00 91.12 0.00 0.00 1266.06 0.00 10:48:07 09:24:01 83.07 0.02 83.06 0.00 0.13 1489.50 0.00 10:48:07 09:25:01 3.25 0.00 3.25 0.00 0.00 53.72 0.00 10:48:07 09:26:01 75.32 0.00 75.32 0.00 0.00 1112.21 0.00 10:48:07 09:27:01 73.72 0.02 73.70 0.00 0.13 1091.55 0.00 10:48:07 09:28:01 1.88 0.00 1.88 0.00 0.00 32.13 0.00 10:48:07 09:29:01 98.17 0.00 98.17 0.00 0.00 1507.62 0.00 10:48:07 09:30:01 58.91 0.00 58.91 0.00 0.00 821.06 0.00 10:48:07 09:31:01 78.25 0.00 78.25 0.00 0.00 1157.14 0.00 10:48:07 09:32:01 16.98 0.00 16.98 0.00 0.00 308.88 0.00 10:48:07 09:33:01 65.72 0.02 65.71 0.00 0.13 939.04 0.00 10:48:07 09:34:01 1.47 0.00 1.47 0.00 0.00 33.86 0.00 10:48:07 09:35:01 16.11 0.00 16.11 0.00 0.00 301.28 0.00 10:48:07 09:36:01 70.40 0.00 70.40 0.00 0.00 996.10 0.00 10:48:07 09:37:01 2.68 0.00 2.68 0.00 0.00 50.92 0.00 10:48:07 09:38:01 2.43 0.00 2.43 0.00 0.00 43.86 0.00 10:48:07 09:39:01 2.98 0.00 2.98 0.00 0.00 47.46 0.00 10:48:07 09:40:01 1.70 0.00 1.70 0.00 0.00 35.06 0.00 10:48:07 09:41:01 2.77 0.00 2.77 0.00 0.00 55.06 0.00 10:48:07 09:42:01 1.78 0.00 1.78 0.00 0.00 26.00 0.00 10:48:07 09:43:01 2.32 0.00 2.32 0.00 0.00 46.26 0.00 10:48:07 09:44:01 82.84 0.00 82.84 0.00 0.00 1229.26 0.00 10:48:07 09:45:01 3.13 0.00 3.13 0.00 0.00 76.25 0.00 10:48:07 09:46:01 2.95 0.00 2.95 0.00 0.00 61.19 0.00 10:48:07 09:47:01 3.75 0.00 3.75 0.00 0.00 72.79 0.00 10:48:07 09:48:01 1.70 0.00 1.70 0.00 0.00 37.32 0.00 10:48:07 09:49:01 2.30 0.00 2.30 0.00 0.00 45.73 0.00 10:48:07 09:50:01 2.35 0.00 2.35 0.00 0.00 67.46 0.00 10:48:07 09:51:01 27.38 0.00 27.38 0.00 0.00 472.53 0.00 10:48:07 09:52:01 59.97 0.00 59.97 0.00 0.00 850.39 0.00 10:48:07 09:53:01 3.68 0.00 3.68 0.00 0.00 74.65 0.00 10:48:07 09:54:01 2.63 0.00 2.63 0.00 0.00 52.39 0.00 10:48:07 09:55:01 2.93 0.00 2.93 0.00 0.00 49.99 0.00 10:48:07 09:56:01 2.83 0.00 2.83 0.00 0.00 58.26 0.00 10:48:07 09:57:01 4.13 0.00 4.13 0.00 0.00 73.99 0.00 10:48:07 09:58:01 2.63 0.00 2.63 0.00 0.00 47.18 0.00 10:48:07 09:59:01 26.30 0.00 26.30 0.00 0.00 569.51 0.00 10:48:07 10:00:01 62.97 0.00 62.97 0.00 0.00 887.72 0.00 10:48:07 10:01:01 3.17 0.00 3.17 0.00 0.00 66.66 0.00 10:48:07 10:02:01 1.82 0.00 1.82 0.00 0.00 42.39 0.00 10:48:07 10:03:01 2.98 0.00 2.98 0.00 0.00 49.86 0.00 10:48:07 10:04:01 2.25 0.00 2.25 0.00 0.00 40.52 0.00 10:48:07 10:05:01 2.23 0.00 2.23 0.00 0.00 38.00 0.00 10:48:07 10:06:01 2.23 0.00 2.23 0.00 0.00 42.39 0.00 10:48:07 10:07:01 3.30 0.00 3.30 0.00 0.00 55.32 0.00 10:48:07 10:08:01 2.07 0.00 2.07 0.00 0.00 47.06 0.00 10:48:07 10:09:01 1.75 0.00 1.75 0.00 0.00 29.46 0.00 10:48:07 10:10:01 1.97 0.00 1.97 0.00 0.00 25.46 0.00 10:48:07 10:11:02 2.17 0.00 2.17 0.00 0.00 27.73 0.00 10:48:07 10:12:01 12.20 0.05 12.15 0.00 0.41 1088.12 0.00 10:48:07 10:13:01 37.21 1.30 35.91 0.00 31.19 8982.37 0.00 10:48:07 10:14:01 2.33 0.00 2.33 0.00 0.00 45.06 0.00 10:48:07 10:15:01 2.03 0.00 2.03 0.00 0.00 27.47 0.00 10:48:07 10:16:01 1.30 0.00 1.30 0.00 0.00 15.86 0.00 10:48:07 10:17:01 61.00 0.00 61.00 0.00 0.00 1238.92 0.00 10:48:07 10:18:01 74.32 0.13 74.18 0.00 9.60 1381.47 0.00 10:48:07 10:19:01 3.67 0.00 3.67 0.00 0.00 59.99 0.00 10:48:07 10:20:01 70.31 0.00 70.31 0.00 0.00 1323.96 0.00 10:48:07 10:21:01 17.33 0.25 17.08 0.00 8.27 310.00 0.00 10:48:07 10:22:01 53.76 0.13 53.62 0.00 10.53 779.34 0.00 10:48:07 10:23:01 3.40 0.02 3.38 0.00 0.13 66.92 0.00 10:48:07 10:24:01 16.89 0.00 16.89 0.00 0.00 307.10 0.00 10:48:07 10:25:01 60.68 0.00 60.68 0.00 0.00 876.91 0.00 10:48:07 10:26:01 2.17 0.00 2.17 0.00 0.00 43.99 0.00 10:48:07 10:27:01 2.08 0.00 2.08 0.00 0.00 49.86 0.00 10:48:07 10:28:01 2.27 0.00 2.27 0.00 0.00 41.86 0.00 10:48:07 10:29:01 2.88 0.00 2.88 0.00 0.00 55.19 0.00 10:48:07 10:30:01 1.40 0.00 1.40 0.00 0.00 30.26 0.00 10:48:07 10:31:01 1.95 0.00 1.95 0.00 0.00 41.99 0.00 10:48:07 10:32:01 2.05 0.00 2.05 0.00 0.00 40.26 0.00 10:48:07 10:33:01 11.15 0.00 11.15 0.00 0.00 1205.67 0.00 10:48:07 10:34:01 92.34 0.00 92.34 0.00 0.00 9485.90 0.00 10:48:07 10:35:01 4.63 0.00 4.63 0.00 0.00 126.38 0.00 10:48:07 10:36:01 35.36 0.00 35.36 0.00 0.00 854.66 0.00 10:48:07 10:37:01 37.96 0.00 37.96 0.00 0.00 551.37 0.00 10:48:07 10:38:01 2.55 0.00 2.55 0.00 0.00 48.39 0.00 10:48:07 10:39:01 2.85 0.00 2.85 0.00 0.00 46.26 0.00 10:48:07 10:40:01 2.25 0.00 2.25 0.00 0.00 34.26 0.00 10:48:07 10:41:01 3.60 0.02 3.58 0.00 0.13 76.79 0.00 10:48:07 10:42:01 2.15 0.00 2.15 0.00 0.00 42.79 0.00 10:48:07 10:43:01 26.63 0.00 26.63 0.00 0.00 580.97 0.00 10:48:07 10:44:01 46.53 0.13 46.39 0.00 4.13 677.62 0.00 10:48:07 10:45:01 3.23 0.00 3.23 0.00 0.00 199.17 0.00 10:48:07 10:46:01 3.38 0.02 3.37 0.00 0.13 80.92 0.00 10:48:07 10:47:01 14.53 3.20 11.33 0.00 63.99 877.45 0.00 10:48:07 10:48:01 67.14 14.46 52.68 0.00 1224.78 31998.00 0.00 10:48:07 Average: 37.47 2.00 35.48 0.00 179.33 4121.28 0.00 10:48:07 10:48:07 08:47:02 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 10:48:07 08:48:01 13432952 15466924 513536 3.13 68452 2163292 1233304 7.08 767840 1906516 145160 10:48:07 08:49:01 11897664 14904672 1053764 6.43 103640 3039548 1882064 10.80 1432104 2691972 593456 10:48:07 08:50:01 9992584 13975716 1980760 12.09 139764 3902364 2607692 14.96 2485032 3463704 323408 10:48:07 08:51:01 6932708 13158812 2796104 17.07 174840 6014220 3594468 20.62 3820628 5085700 285816 10:48:07 08:52:01 4139288 13541048 2400272 14.65 218632 9014128 3343540 19.18 4351220 7200952 45432 10:48:07 08:53:01 2602248 12913232 3028644 18.49 235160 9871980 4050576 23.24 5533608 7519520 4136 10:48:07 08:54:01 2790324 13105744 2836244 17.31 239152 9872544 3909572 22.43 5366424 7498652 844 10:48:07 08:55:01 3581092 13900384 2041700 12.46 242328 9873028 3142568 18.03 4588660 7487788 500 10:48:07 08:56:01 1290568 11881728 4059092 24.78 254960 10117924 6243512 35.82 6667776 7676800 226908 10:48:07 08:57:01 165420 8732740 7206500 43.99 250120 8132072 8852792 50.79 9549380 5943528 992 10:48:07 08:58:01 172736 8186976 7751952 47.32 250140 7588432 9071960 52.05 10029040 5463468 572 10:48:07 08:59:01 152720 8167768 7771092 47.44 250172 7589204 9087984 52.14 10048364 5463948 492 10:48:07 09:00:01 170488 8166360 7772492 47.45 250208 7570612 9087984 52.14 10048080 5446900 260 10:48:07 09:01:01 168512 8164412 7774440 47.46 250224 7570620 9087984 52.14 10049728 5446900 244 10:48:07 09:02:01 527664 7552892 8385644 51.19 251852 6621376 9924420 56.94 10573104 4583760 1320 10:48:07 09:03:01 3831480 10864136 5076148 30.99 253248 6627472 6745472 38.70 7290996 4575584 1932 10:48:07 09:04:01 2982708 10017740 5922056 36.15 255028 6627992 6960484 39.93 8138312 4573636 408 10:48:07 09:05:01 2895760 9931264 6008352 36.68 255076 6628416 7025392 40.31 8223616 4573964 36 10:48:07 09:06:01 2872112 9907816 6031756 36.82 255108 6628584 7025392 40.31 8246068 4574088 116 10:48:07 09:07:01 6409588 13446368 2495052 15.23 256648 6628100 3565348 20.46 4735964 4563212 1260 10:48:07 09:08:01 3145812 10186036 5753768 35.12 258360 6629816 6950676 39.88 7985496 4564468 412 10:48:07 09:09:01 2882908 9924352 6015068 36.72 258380 6631016 7131064 40.91 8245804 4564940 56 10:48:07 09:10:01 2843848 9885536 6053828 36.96 258392 6631288 7149684 41.02 8284760 4565148 200 10:48:07 09:11:01 2810292 9852432 6086904 37.16 258416 6631672 7167568 41.12 8316928 4565572 688 10:48:07 09:12:01 4678640 11723144 4217580 25.75 260264 6632136 6205192 35.60 6458848 4565028 2144 10:48:07 09:13:01 3136512 10182840 5756856 35.14 261588 6632604 6820604 39.13 7994148 4564984 532 10:48:07 09:14:01 6848920 13912516 2028644 12.38 263456 6646972 3101656 17.80 4283560 4578848 16164 10:48:07 09:15:01 6022296 13329228 2611852 15.94 269952 6878324 3662972 21.02 4945992 4735240 1300 10:48:07 09:16:01 4979768 12288152 3652152 22.29 270708 6879016 4636092 26.60 5992940 4726536 104 10:48:07 09:17:01 4963940 12272484 3667792 22.39 270716 6879156 4668072 26.78 6007756 4726660 328 10:48:07 09:18:01 4218900 11528332 4411576 26.93 271408 6879320 5419676 31.09 6762060 4715636 348 10:48:07 09:19:01 4158876 11468540 4471248 27.29 271424 6879544 5467836 31.37 6821068 4715780 440 10:48:07 09:20:01 5149436 12459372 3481228 21.25 271508 6879688 4549520 26.10 5835884 4714800 412 10:48:07 09:21:01 6472232 13849500 2091428 12.77 274152 6940420 3425524 19.65 4455556 4774348 61688 10:48:07 09:22:01 3502832 10881220 5058260 30.88 274944 6940740 6166196 35.38 7411764 4774656 108 10:48:07 09:23:01 6424744 13803836 2136984 13.05 275408 6940912 3440516 19.74 4516932 4760428 460 10:48:07 09:24:01 3026512 10406460 5532716 33.77 275832 6941304 6814052 39.09 7900456 4760816 264 10:48:07 09:25:01 2738212 10118220 5820932 35.53 275832 6941364 6882184 39.48 8188020 4760860 48 10:48:07 09:26:01 4906740 12287168 3653000 22.30 276156 6941448 4668764 26.79 6028676 4759472 108 10:48:07 09:27:01 4712808 12093984 3846160 23.48 276624 6941668 4861332 27.89 6221984 4759392 140 10:48:07 09:28:01 4662164 12043372 3896756 23.79 276628 6941700 4927508 28.27 6273324 4759404 84 10:48:07 09:29:01 5137552 12519788 3420564 20.88 277060 6942276 4653056 26.70 5799444 4759520 656 10:48:07 09:30:01 4800896 12183464 3756512 22.93 277276 6942372 4782084 27.44 6134120 4759608 96 10:48:07 09:31:01 4123256 11506348 4433192 27.06 277468 6942684 5393468 30.94 6809096 4759900 376 10:48:07 09:32:01 5890880 13274112 2666696 16.28 277476 6942808 3675836 21.09 5048588 4759960 436 10:48:07 09:33:01 2744072 10127772 5811124 35.47 277680 6943028 6942920 39.83 8181848 4760152 128 10:48:07 09:34:01 2530188 9914216 6024552 36.78 277680 6943352 7055852 40.48 8396024 4760480 264 10:48:07 09:35:01 5887544 13271772 2668768 16.29 277688 6943544 3683092 21.13 5048616 4760592 692 10:48:07 09:36:01 2764872 10149512 5789368 35.34 277992 6943652 6791332 38.96 8157308 4760680 168 10:48:07 09:37:01 2608332 9993320 5945332 36.29 277992 6943996 6905268 39.62 8317060 4761024 268 10:48:07 09:38:01 2582596 9967892 5970752 36.45 277992 6944304 6921348 39.71 8341796 4761328 200 10:48:07 09:39:01 2568672 9954024 5984624 36.53 277992 6944356 6921348 39.71 8355600 4761384 104 10:48:07 09:40:01 2550872 9936632 6001896 36.64 277992 6944772 6937436 39.80 8372044 4761792 612 10:48:07 09:41:01 2544448 9930412 6008124 36.68 277992 6944968 6937436 39.80 8378140 4761992 108 10:48:07 09:42:01 2493252 9879308 6059152 36.99 277992 6945060 6986648 40.08 8428664 4762084 228 10:48:07 09:43:01 3439572 10825772 5112856 31.21 277992 6945204 6090604 34.94 7483376 4762224 304 10:48:07 09:44:01 2705872 10092280 5846492 35.69 278108 6945300 6909708 39.64 8212992 4762240 220 10:48:07 09:45:01 2513852 9900844 6037584 36.86 278116 6945884 7058264 40.50 8408176 4762816 236 10:48:07 09:46:01 2490636 9878088 6060296 37.00 278120 6946316 7058264 40.50 8429352 4763256 100 10:48:07 09:47:01 2458168 9846100 6092392 37.19 278120 6946792 7058264 40.50 8461472 4763736 120 10:48:07 09:48:01 2443008 9831344 6107068 37.28 278120 6947212 7058264 40.50 8476696 4764136 300 10:48:07 09:49:01 2427580 9816252 6122208 37.37 278124 6947524 7058264 40.50 8492576 4764464 348 10:48:07 09:50:01 2391544 9780996 6157460 37.59 278124 6948296 7090320 40.68 8527148 4765240 120 10:48:07 09:51:01 3713836 11103084 4836272 29.52 278140 6948072 6624764 38.01 7208008 4764980 420 10:48:07 09:52:01 1176264 8565432 7372512 45.01 278260 6947868 8318872 47.73 9740368 4764772 384 10:48:07 09:53:01 1039944 8429528 7508268 45.83 278260 6948284 8416420 48.29 9873912 4765176 140 10:48:07 09:54:01 953248 8343100 7594588 46.36 278260 6948552 8465508 48.57 9961536 4765444 212 10:48:07 09:55:01 939576 8329552 7608132 46.44 278264 6948672 8465508 48.57 9974888 4765564 200 10:48:07 09:56:01 905800 8296100 7641576 46.65 278264 6948996 8481516 48.66 10006848 4765888 152 10:48:07 09:57:01 882748 8273456 7664176 46.79 278272 6949392 8497528 48.75 10029812 4766280 52 10:48:07 09:58:01 849792 8240748 7696840 46.99 278276 6949640 8513556 48.84 10062164 4766524 8 10:48:07 09:59:01 4754420 12145392 3794216 23.16 278324 6949604 5290472 30.35 6170904 4766368 800 10:48:07 10:00:01 1190336 8581248 7356616 44.91 278460 6949404 8358376 47.95 9722996 4766152 228 10:48:07 10:01:01 1032204 8423520 7514164 45.87 278460 6949812 8456932 48.52 9880284 4766556 256 10:48:07 10:02:01 961808 8353496 7584060 46.30 278464 6950172 8506380 48.80 9950040 4766920 252 10:48:07 10:03:01 951224 8343008 7594548 46.36 278464 6950268 8506380 48.80 9960120 4767016 172 10:48:07 10:04:01 932040 8324008 7613600 46.48 278464 6950456 8554396 49.08 9978648 4767200 232 10:48:07 10:05:01 918140 8310244 7627348 46.56 278468 6950592 8554396 49.08 9992268 4767332 336 10:48:07 10:06:01 903956 8296200 7641368 46.65 278468 6950724 8554396 49.08 10006060 4767472 204 10:48:07 10:07:01 869912 8262324 7675200 46.85 278472 6950888 8570464 49.17 10040100 4767636 100 10:48:07 10:08:01 827356 8220300 7717152 47.11 278476 6951416 8603596 49.36 10082152 4768164 136 10:48:07 10:09:01 824520 8217508 7719944 47.13 278484 6951452 8619584 49.45 10084852 4768196 312 10:48:07 10:10:01 823080 8216068 7721364 47.14 278484 6951452 8619584 49.45 10085788 4768196 68 10:48:07 10:11:02 821372 8214372 7723048 47.15 278492 6951456 8619584 49.45 10087276 4768200 308 10:48:07 10:12:01 5319276 12967508 2972628 18.15 284500 7193904 4035096 23.15 5384808 4984044 227088 10:48:07 10:13:01 3893500 11543596 4395592 26.83 284636 7195640 5407792 31.03 6835540 4953416 660 10:48:07 10:14:01 3890280 11540396 4398824 26.85 284636 7195660 5407792 31.03 6838660 4953392 32 10:48:07 10:15:01 3888288 11538408 4400892 26.87 284636 7195664 5407792 31.03 6840944 4953380 60 10:48:07 10:16:01 3887052 11537172 4402128 26.87 284636 7195664 5423796 31.12 6842552 4953380 204 10:48:07 10:17:01 3926352 11576968 4362320 26.63 284768 7195964 5389588 30.92 6822716 4932860 324 10:48:07 10:18:01 2881596 10533020 5405564 33.00 284872 7196584 6745300 38.70 7875548 4920956 284 10:48:07 10:19:01 2460688 10112196 5826304 35.57 284872 7196664 6863540 39.38 8296800 4920948 8 10:48:07 10:20:01 3950868 11602692 4336472 26.47 285024 7196832 5375276 30.84 6809988 4920860 252 10:48:07 10:21:01 5422884 13075104 2864996 17.49 285028 7197204 3855068 22.12 5345388 4920484 444 10:48:07 10:22:01 2522388 10175368 5763000 35.18 285180 7197816 6853216 39.32 8236428 4920580 72 10:48:07 10:23:01 2226240 9879516 6058712 36.99 285200 7198088 6968176 39.98 8529724 4920828 360 10:48:07 10:24:01 5554884 13208296 2731664 16.68 285208 7198216 3662716 21.01 5214616 4920696 700 10:48:07 10:25:01 2403416 10057224 5880908 35.90 285316 7198504 6919364 39.70 8355000 4920236 368 10:48:07 10:26:01 2332668 9986740 5951380 36.33 285316 7198768 6919364 39.70 8424824 4920500 136 10:48:07 10:27:01 2208180 9862764 6075348 37.09 285316 7199276 7000436 40.16 8548116 4920988 344 10:48:07 10:28:01 2175924 9830772 6107340 37.28 285316 7199540 7000436 40.16 8579932 4921252 232 10:48:07 10:29:01 2167064 9822232 6115864 37.33 285316 7199856 7000436 40.16 8588768 4921568 232 10:48:07 10:30:01 2160488 9816040 6122004 37.37 285316 7200252 7000436 40.16 8594220 4921952 268 10:48:07 10:31:01 2156196 9812084 6125900 37.40 285316 7200592 7000436 40.16 8598012 4922288 556 10:48:07 10:32:01 2153644 9809916 6128064 37.41 285316 7200980 7000436 40.16 8599860 4922672 328 10:48:07 10:33:01 5276024 13184224 2755552 16.82 291340 7440152 3660936 21.00 5274256 5131212 233624 10:48:07 10:34:01 1997872 9911856 6025916 36.79 291584 7445508 6938760 39.81 8564388 5107028 2088 10:48:07 10:35:01 1850992 9765284 6172332 37.68 291584 7445796 7065816 40.54 8711208 5107168 72 10:48:07 10:36:01 2429844 10344324 5593812 34.15 291664 7445812 6719392 38.55 8157264 5087684 248 10:48:07 10:37:01 1976844 9891812 6045676 36.91 291716 7446244 6938448 39.81 8607444 5085444 196 10:48:07 10:38:01 1968276 9883436 6054020 36.96 291716 7446436 6938448 39.81 8615684 5085580 288 10:48:07 10:39:01 1948604 9864068 6073468 37.08 291716 7446740 6970440 39.99 8634776 5085876 344 10:48:07 10:40:01 1939720 9855400 6082132 37.13 291716 7446964 6970440 39.99 8643200 5086092 240 10:48:07 10:41:01 1894160 9810384 6126940 37.40 291724 7447480 6986480 40.08 8687204 5086600 116 10:48:07 10:42:01 1872616 9789176 6148148 37.53 291724 7447812 6986480 40.08 8708456 5086936 4 10:48:07 10:43:01 3286424 11202772 4735572 28.91 291744 7447548 5966860 34.23 7312528 5075052 424 10:48:07 10:44:01 1199724 9116432 6820764 41.64 291768 7447884 7683168 44.08 9392640 5075148 220 10:48:07 10:45:01 1118476 9035712 6901344 42.13 291768 7448396 7733924 44.37 9471368 5075600 428 10:48:07 10:46:01 1066368 8984352 6952692 42.44 291768 7449144 7749972 44.46 9523340 5076344 160 10:48:07 10:47:01 5561712 13551336 2387724 14.58 294076 7514188 3328884 19.10 4979344 5137644 48432 10:48:07 10:48:01 4859228 13737848 2201644 13.44 296876 8372848 3036848 17.42 5011684 5779492 15580 10:48:07 Average: 3086719 10584866 5354843 32.69 270448 7068955 6388746 36.65 7690035 4915111 18726 10:48:07 10:48:07 08:47:02 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 10:48:07 08:48:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:48:01 lo 0.88 0.88 0.09 0.09 0.00 0.00 0.00 0.00 10:48:07 08:48:01 ens3 372.84 268.85 1675.47 73.58 0.00 0.00 0.00 0.00 10:48:07 08:49:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:49:01 lo 3.67 3.67 0.35 0.35 0.00 0.00 0.00 0.00 10:48:07 08:49:01 ens3 370.95 294.33 5412.24 33.14 0.00 0.00 0.00 0.00 10:48:07 08:50:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:50:01 lo 3.00 3.00 0.32 0.32 0.00 0.00 0.00 0.00 10:48:07 08:50:01 ens3 278.72 245.69 4323.02 26.49 0.00 0.00 0.00 0.00 10:48:07 08:51:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:51:01 lo 1.13 1.13 0.11 0.11 0.00 0.00 0.00 0.00 10:48:07 08:51:01 ens3 258.60 165.43 3840.86 16.73 0.00 0.00 0.00 0.00 10:48:07 08:52:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:52:01 lo 1.13 1.13 0.12 0.12 0.00 0.00 0.00 0.00 10:48:07 08:52:01 ens3 272.70 189.52 3868.33 15.50 0.00 0.00 0.00 0.00 10:48:07 08:53:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:53:01 lo 6.15 6.15 13.78 13.78 0.00 0.00 0.00 0.00 10:48:07 08:53:01 ens3 2.72 2.92 1.30 0.93 0.00 0.00 0.00 0.00 10:48:07 08:54:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:54:01 lo 4.20 4.20 2.11 2.11 0.00 0.00 0.00 0.00 10:48:07 08:54:01 ens3 0.70 0.57 0.12 0.11 0.00 0.00 0.00 0.00 10:48:07 08:55:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:55:01 lo 9.70 9.70 6.29 6.29 0.00 0.00 0.00 0.00 10:48:07 08:55:01 ens3 0.92 0.85 0.16 0.15 0.00 0.00 0.00 0.00 10:48:07 08:56:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:56:01 lo 5.25 5.25 1.23 1.23 0.00 0.00 0.00 0.00 10:48:07 08:56:01 ens3 1.92 2.12 0.83 0.74 0.00 0.00 0.00 0.00 10:48:07 08:57:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:57:01 lo 16.14 16.14 12.57 12.57 0.00 0.00 0.00 0.00 10:48:07 08:57:01 ens3 6.90 6.00 1.36 3.85 0.00 0.00 0.00 0.00 10:48:07 08:58:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:58:01 lo 33.06 33.06 25.82 25.82 0.00 0.00 0.00 0.00 10:48:07 08:58:01 ens3 0.78 0.82 0.24 0.18 0.00 0.00 0.00 0.00 10:48:07 08:59:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 08:59:01 lo 26.38 26.38 11.88 11.88 0.00 0.00 0.00 0.00 10:48:07 08:59:01 ens3 1.03 0.67 0.36 0.26 0.00 0.00 0.00 0.00 10:48:07 09:00:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:00:01 lo 0.42 0.42 0.04 0.04 0.00 0.00 0.00 0.00 10:48:07 09:00:01 ens3 0.07 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:01:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:01:01 lo 0.73 0.73 0.07 0.07 0.00 0.00 0.00 0.00 10:48:07 09:01:01 ens3 0.17 0.10 0.01 0.01 0.00 0.00 0.00 0.00 10:48:07 09:02:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:02:01 lo 2.42 2.42 0.29 0.29 0.00 0.00 0.00 0.00 10:48:07 09:02:01 ens3 0.28 0.27 0.04 0.04 0.00 0.00 0.00 0.00 10:48:07 09:03:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:03:01 lo 3.57 3.57 0.37 0.37 0.00 0.00 0.00 0.00 10:48:07 09:03:01 ens3 0.88 0.72 0.21 0.14 0.00 0.00 0.00 0.00 10:48:07 09:04:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:04:01 lo 18.15 18.15 19.96 19.96 0.00 0.00 0.00 0.00 10:48:07 09:04:01 ens3 0.63 0.57 0.12 0.12 0.00 0.00 0.00 0.00 10:48:07 09:05:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:05:01 lo 21.44 21.44 10.79 10.79 0.00 0.00 0.00 0.00 10:48:07 09:05:01 ens3 0.45 0.25 0.05 0.04 0.00 0.00 0.00 0.00 10:48:07 09:06:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:06:01 lo 14.13 14.13 5.59 5.59 0.00 0.00 0.00 0.00 10:48:07 09:06:01 ens3 1.00 0.43 0.34 0.24 0.00 0.00 0.00 0.00 10:48:07 09:07:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:07:01 lo 21.34 21.34 6.00 6.00 0.00 0.00 0.00 0.00 10:48:07 09:07:01 ens3 0.65 0.52 0.11 0.09 0.00 0.00 0.00 0.00 10:48:07 09:08:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:08:01 lo 13.20 13.20 5.96 5.96 0.00 0.00 0.00 0.00 10:48:07 09:08:01 ens3 0.78 0.70 0.20 0.13 0.00 0.00 0.00 0.00 10:48:07 09:09:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:09:01 lo 25.01 25.01 8.48 8.48 0.00 0.00 0.00 0.00 10:48:07 09:09:01 ens3 0.87 0.85 0.15 0.15 0.00 0.00 0.00 0.00 10:48:07 09:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:10:01 lo 11.36 11.36 8.24 8.24 0.00 0.00 0.00 0.00 10:48:07 09:10:01 ens3 1.08 1.40 0.22 0.22 0.00 0.00 0.00 0.00 10:48:07 09:11:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:11:01 lo 30.36 30.36 12.87 12.87 0.00 0.00 0.00 0.00 10:48:07 09:11:01 ens3 1.33 1.15 0.22 0.18 0.00 0.00 0.00 0.00 10:48:07 09:12:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:12:01 lo 6.00 6.00 1.38 1.38 0.00 0.00 0.00 0.00 10:48:07 09:12:01 ens3 0.98 1.12 0.36 0.32 0.00 0.00 0.00 0.00 10:48:07 09:13:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:13:01 lo 16.15 16.15 15.24 15.24 0.00 0.00 0.00 0.00 10:48:07 09:13:01 ens3 0.88 0.83 0.21 0.15 0.00 0.00 0.00 0.00 10:48:07 09:14:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:14:01 lo 4.88 4.88 3.42 3.42 0.00 0.00 0.00 0.00 10:48:07 09:14:01 ens3 1.33 1.27 0.43 0.36 0.00 0.00 0.00 0.00 10:48:07 09:15:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:15:01 lo 10.45 10.45 15.66 15.66 0.00 0.00 0.00 0.00 10:48:07 09:15:01 ens3 2.18 2.48 0.87 0.78 0.00 0.00 0.00 0.00 10:48:07 09:16:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:16:01 lo 19.41 19.41 9.27 9.27 0.00 0.00 0.00 0.00 10:48:07 09:16:01 ens3 0.82 1.13 0.17 0.18 0.00 0.00 0.00 0.00 10:48:07 09:17:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:17:01 lo 25.91 25.91 8.53 8.53 0.00 0.00 0.00 0.00 10:48:07 09:17:01 ens3 1.13 1.55 0.23 0.24 0.00 0.00 0.00 0.00 10:48:07 09:18:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:18:01 lo 15.83 15.83 9.94 9.94 0.00 0.00 0.00 0.00 10:48:07 09:18:01 ens3 1.03 1.22 0.28 0.23 0.00 0.00 0.00 0.00 10:48:07 09:19:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:19:01 lo 34.99 34.99 11.85 11.85 0.00 0.00 0.00 0.00 10:48:07 09:19:01 ens3 1.25 1.57 0.24 0.26 0.00 0.00 0.00 0.00 10:48:07 09:20:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:20:01 lo 21.51 21.51 6.51 6.51 0.00 0.00 0.00 0.00 10:48:07 09:20:01 ens3 0.98 1.18 0.18 0.18 0.00 0.00 0.00 0.00 10:48:07 09:21:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:21:01 lo 27.18 27.18 11.73 11.73 0.00 0.00 0.00 0.00 10:48:07 09:21:01 ens3 2.25 2.92 0.91 0.85 0.00 0.00 0.00 0.00 10:48:07 09:22:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:22:01 lo 13.51 13.51 9.80 9.80 0.00 0.00 0.00 0.00 10:48:07 09:22:01 ens3 1.23 1.52 0.23 0.24 0.00 0.00 0.00 0.00 10:48:07 09:23:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:23:01 lo 15.13 15.13 4.84 4.84 0.00 0.00 0.00 0.00 10:48:07 09:23:01 ens3 1.52 1.75 0.35 0.31 0.00 0.00 0.00 0.00 10:48:07 09:24:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:24:01 lo 9.60 9.60 4.23 4.23 0.00 0.00 0.00 0.00 10:48:07 09:24:01 ens3 0.73 0.80 0.11 0.11 0.00 0.00 0.00 0.00 10:48:07 09:25:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:25:01 lo 20.60 20.60 9.17 9.17 0.00 0.00 0.00 0.00 10:48:07 09:25:01 ens3 1.13 1.50 0.23 0.24 0.00 0.00 0.00 0.00 10:48:07 09:26:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:26:01 lo 5.65 5.65 6.39 6.39 0.00 0.00 0.00 0.00 10:48:07 09:26:01 ens3 0.78 0.85 0.13 0.13 0.00 0.00 0.00 0.00 10:48:07 09:27:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:27:01 lo 7.80 7.80 2.87 2.87 0.00 0.00 0.00 0.00 10:48:07 09:27:01 ens3 1.35 1.18 0.41 0.33 0.00 0.00 0.00 0.00 10:48:07 09:28:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:28:01 lo 4.38 4.38 1.02 1.02 0.00 0.00 0.00 0.00 10:48:07 09:28:01 ens3 0.73 0.75 0.22 0.16 0.00 0.00 0.00 0.00 10:48:07 09:29:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:29:01 lo 28.81 28.81 9.46 9.46 0.00 0.00 0.00 0.00 10:48:07 09:29:01 ens3 0.93 1.03 0.14 0.15 0.00 0.00 0.00 0.00 10:48:07 09:30:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:30:01 lo 18.68 18.68 12.84 12.84 0.00 0.00 0.00 0.00 10:48:07 09:30:01 ens3 1.07 1.05 0.42 0.36 0.00 0.00 0.00 0.00 10:48:07 09:31:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:31:01 lo 15.43 15.43 16.39 16.39 0.00 0.00 0.00 0.00 10:48:07 09:31:01 ens3 0.75 0.62 0.10 0.10 0.00 0.00 0.00 0.00 10:48:07 09:32:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:32:01 lo 12.75 12.75 5.82 5.82 0.00 0.00 0.00 0.00 10:48:07 09:32:01 ens3 1.48 0.90 0.24 0.19 0.00 0.00 0.00 0.00 10:48:07 09:33:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:33:01 lo 24.78 24.78 10.47 10.47 0.00 0.00 0.00 0.00 10:48:07 09:33:01 ens3 1.38 1.13 0.53 0.40 0.00 0.00 0.00 0.00 10:48:07 09:34:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:34:01 lo 46.76 46.76 14.42 14.42 0.00 0.00 0.00 0.00 10:48:07 09:34:01 ens3 0.53 0.52 0.11 0.10 0.00 0.00 0.00 0.00 10:48:07 09:35:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:35:01 lo 24.03 24.03 7.11 7.11 0.00 0.00 0.00 0.00 10:48:07 09:35:01 ens3 0.75 0.65 0.13 0.12 0.00 0.00 0.00 0.00 10:48:07 09:36:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:36:01 lo 16.23 16.23 15.64 15.64 0.00 0.00 0.00 0.00 10:48:07 09:36:01 ens3 0.80 0.70 0.17 0.11 0.00 0.00 0.00 0.00 10:48:07 09:37:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:37:01 lo 19.29 19.29 9.16 9.16 0.00 0.00 0.00 0.00 10:48:07 09:37:01 ens3 0.67 0.45 0.11 0.08 0.00 0.00 0.00 0.00 10:48:07 09:38:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:38:01 lo 18.78 18.78 9.94 9.94 0.00 0.00 0.00 0.00 10:48:07 09:38:01 ens3 1.02 0.93 0.29 0.22 0.00 0.00 0.00 0.00 10:48:07 09:39:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:39:01 lo 6.33 6.33 3.52 3.52 0.00 0.00 0.00 0.00 10:48:07 09:39:01 ens3 0.95 0.67 0.14 0.11 0.00 0.00 0.00 0.00 10:48:07 09:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:40:01 lo 31.71 31.71 12.49 12.49 0.00 0.00 0.00 0.00 10:48:07 09:40:01 ens3 1.00 0.90 0.41 0.34 0.00 0.00 0.00 0.00 10:48:07 09:41:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:41:01 lo 10.51 10.51 4.76 4.76 0.00 0.00 0.00 0.00 10:48:07 09:41:01 ens3 0.60 0.22 0.07 0.03 0.00 0.00 0.00 0.00 10:48:07 09:42:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:42:01 lo 15.10 15.10 6.94 6.94 0.00 0.00 0.00 0.00 10:48:07 09:42:01 ens3 1.05 0.68 0.19 0.14 0.00 0.00 0.00 0.00 10:48:07 09:43:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:43:01 lo 24.08 24.08 8.76 8.76 0.00 0.00 0.00 0.00 10:48:07 09:43:01 ens3 1.30 0.53 0.34 0.17 0.00 0.00 0.00 0.00 10:48:07 09:44:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:44:01 lo 16.83 16.83 6.97 6.97 0.00 0.00 0.00 0.00 10:48:07 09:44:01 ens3 1.02 0.75 0.14 0.13 0.00 0.00 0.00 0.00 10:48:07 09:45:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:45:01 lo 37.29 37.29 12.48 12.48 0.00 0.00 0.00 0.00 10:48:07 09:45:01 ens3 0.70 0.58 0.13 0.11 0.00 0.00 0.00 0.00 10:48:07 09:46:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:46:01 lo 46.36 46.36 13.71 13.71 0.00 0.00 0.00 0.00 10:48:07 09:46:01 ens3 0.33 0.18 0.05 0.04 0.00 0.00 0.00 0.00 10:48:07 09:47:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:47:01 lo 29.16 29.16 8.80 8.80 0.00 0.00 0.00 0.00 10:48:07 09:47:01 ens3 0.62 0.52 0.10 0.10 0.00 0.00 0.00 0.00 10:48:07 09:48:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:48:01 lo 32.71 32.71 9.67 9.67 0.00 0.00 0.00 0.00 10:48:07 09:48:01 ens3 0.57 0.48 0.18 0.12 0.00 0.00 0.00 0.00 10:48:07 09:49:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:49:01 lo 21.16 21.16 5.93 5.93 0.00 0.00 0.00 0.00 10:48:07 09:49:01 ens3 0.18 0.15 0.02 0.02 0.00 0.00 0.00 0.00 10:48:07 09:50:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:50:01 lo 58.01 58.01 18.64 18.64 0.00 0.00 0.00 0.00 10:48:07 09:50:01 ens3 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:51:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:51:01 lo 24.95 24.95 6.90 6.90 0.00 0.00 0.00 0.00 10:48:07 09:51:01 ens3 0.77 0.70 0.10 0.10 0.00 0.00 0.00 0.00 10:48:07 09:52:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:52:01 lo 22.33 22.33 22.37 22.37 0.00 0.00 0.00 0.00 10:48:07 09:52:01 ens3 1.43 1.10 0.42 0.33 0.00 0.00 0.00 0.00 10:48:07 09:53:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:53:01 lo 33.44 33.44 13.70 13.70 0.00 0.00 0.00 0.00 10:48:07 09:53:01 ens3 1.13 0.63 0.28 0.16 0.00 0.00 0.00 0.00 10:48:07 09:54:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:54:01 lo 18.28 18.28 7.73 7.73 0.00 0.00 0.00 0.00 10:48:07 09:54:01 ens3 1.02 0.80 0.39 0.32 0.00 0.00 0.00 0.00 10:48:07 09:55:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:55:01 lo 11.63 11.63 4.74 4.74 0.00 0.00 0.00 0.00 10:48:07 09:55:01 ens3 0.87 0.70 0.15 0.14 0.00 0.00 0.00 0.00 10:48:07 09:56:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:56:01 lo 35.31 35.31 14.05 14.05 0.00 0.00 0.00 0.00 10:48:07 09:56:01 ens3 0.35 0.33 0.07 0.07 0.00 0.00 0.00 0.00 10:48:07 09:57:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:57:01 lo 29.31 29.31 11.89 11.89 0.00 0.00 0.00 0.00 10:48:07 09:57:01 ens3 0.85 0.65 0.14 0.12 0.00 0.00 0.00 0.00 10:48:07 09:58:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:58:01 lo 24.34 24.34 9.19 9.19 0.00 0.00 0.00 0.00 10:48:07 09:58:01 ens3 0.58 0.68 0.21 0.15 0.00 0.00 0.00 0.00 10:48:07 09:59:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 09:59:01 lo 4.80 4.80 2.15 2.15 0.00 0.00 0.00 0.00 10:48:07 09:59:01 ens3 0.80 0.85 0.12 0.12 0.00 0.00 0.00 0.00 10:48:07 10:00:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:00:01 lo 21.66 21.66 22.30 22.30 0.00 0.00 0.00 0.00 10:48:07 10:00:01 ens3 0.70 0.72 0.10 0.10 0.00 0.00 0.00 0.00 10:48:07 10:01:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:01:01 lo 33.43 33.43 13.72 13.72 0.00 0.00 0.00 0.00 10:48:07 10:01:01 ens3 0.85 0.97 0.14 0.16 0.00 0.00 0.00 0.00 10:48:07 10:02:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:02:01 lo 19.10 19.10 10.19 10.19 0.00 0.00 0.00 0.00 10:48:07 10:02:01 ens3 0.47 0.35 0.06 0.06 0.00 0.00 0.00 0.00 10:48:07 10:03:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:03:01 lo 10.33 10.33 5.72 5.72 0.00 0.00 0.00 0.00 10:48:07 10:03:01 ens3 0.93 1.15 0.27 0.22 0.00 0.00 0.00 0.00 10:48:07 10:04:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:04:01 lo 24.23 24.23 12.62 12.62 0.00 0.00 0.00 0.00 10:48:07 10:04:01 ens3 0.52 0.63 0.10 0.10 0.00 0.00 0.00 0.00 10:48:07 10:05:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:05:01 lo 8.37 8.37 5.73 5.73 0.00 0.00 0.00 0.00 10:48:07 10:05:01 ens3 0.70 0.72 0.11 0.11 0.00 0.00 0.00 0.00 10:48:07 10:06:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:06:01 lo 15.73 15.73 7.90 7.90 0.00 0.00 0.00 0.00 10:48:07 10:06:01 ens3 0.43 0.58 0.09 0.09 0.00 0.00 0.00 0.00 10:48:07 10:07:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:07:01 lo 15.90 15.90 8.98 8.98 0.00 0.00 0.00 0.00 10:48:07 10:07:01 ens3 0.82 0.53 0.12 0.08 0.00 0.00 0.00 0.00 10:48:07 10:08:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:08:01 lo 38.14 38.14 13.84 13.84 0.00 0.00 0.00 0.00 10:48:07 10:08:01 ens3 0.73 0.50 0.46 0.32 0.00 0.00 0.00 0.00 10:48:07 10:09:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:09:01 lo 4.18 4.18 2.52 2.52 0.00 0.00 0.00 0.00 10:48:07 10:09:01 ens3 0.47 0.43 0.08 0.08 0.00 0.00 0.00 0.00 10:48:07 10:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:10:01 lo 0.38 0.38 0.04 0.04 0.00 0.00 0.00 0.00 10:48:07 10:10:01 ens3 0.12 0.00 0.01 0.00 0.00 0.00 0.00 0.00 10:48:07 10:11:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:11:02 lo 0.47 0.47 0.03 0.03 0.00 0.00 0.00 0.00 10:48:07 10:11:02 ens3 0.13 0.10 0.01 0.01 0.00 0.00 0.00 0.00 10:48:07 10:12:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:12:01 lo 1.56 1.56 0.14 0.14 0.00 0.00 0.00 0.00 10:48:07 10:12:01 ens3 1.61 1.88 0.78 0.69 0.00 0.00 0.00 0.00 10:48:07 10:13:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:13:01 lo 11.15 11.15 10.37 10.37 0.00 0.00 0.00 0.00 10:48:07 10:13:01 ens3 0.77 0.67 0.22 0.15 0.00 0.00 0.00 0.00 10:48:07 10:14:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:14:01 lo 1.88 1.88 0.26 0.26 0.00 0.00 0.00 0.00 10:48:07 10:14:01 ens3 0.87 0.38 0.13 0.08 0.00 0.00 0.00 0.00 10:48:07 10:15:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:15:01 lo 0.20 0.20 0.01 0.01 0.00 0.00 0.00 0.00 10:48:07 10:15:01 ens3 0.42 0.28 0.26 0.20 0.00 0.00 0.00 0.00 10:48:07 10:16:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:16:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:16:01 ens3 0.12 0.00 0.01 0.00 0.00 0.00 0.00 0.00 10:48:07 10:17:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:17:01 lo 15.29 15.29 5.43 5.43 0.00 0.00 0.00 0.00 10:48:07 10:17:01 ens3 0.62 0.57 0.09 0.09 0.00 0.00 0.00 0.00 10:48:07 10:18:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:18:01 lo 9.23 9.23 3.60 3.60 0.00 0.00 0.00 0.00 10:48:07 10:18:01 ens3 1.13 0.88 0.26 0.18 0.00 0.00 0.00 0.00 10:48:07 10:19:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:19:01 lo 23.30 23.30 12.74 12.74 0.00 0.00 0.00 0.00 10:48:07 10:19:01 ens3 1.10 1.50 0.22 0.24 0.00 0.00 0.00 0.00 10:48:07 10:20:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:20:01 lo 10.28 10.28 5.21 5.21 0.00 0.00 0.00 0.00 10:48:07 10:20:01 ens3 0.82 0.97 0.14 0.15 0.00 0.00 0.00 0.00 10:48:07 10:21:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:21:01 lo 15.97 15.97 4.36 4.36 0.00 0.00 0.00 0.00 10:48:07 10:21:01 ens3 1.03 1.37 0.20 0.21 0.00 0.00 0.00 0.00 10:48:07 10:22:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:22:01 lo 22.26 22.26 11.29 11.29 0.00 0.00 0.00 0.00 10:48:07 10:22:01 ens3 0.93 1.10 0.16 0.16 0.00 0.00 0.00 0.00 10:48:07 10:23:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:23:01 lo 40.59 40.59 11.82 11.82 0.00 0.00 0.00 0.00 10:48:07 10:23:01 ens3 0.78 0.95 0.24 0.19 0.00 0.00 0.00 0.00 10:48:07 10:24:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:24:01 lo 15.39 15.39 4.76 4.76 0.00 0.00 0.00 0.00 10:48:07 10:24:01 ens3 0.63 0.73 0.12 0.12 0.00 0.00 0.00 0.00 10:48:07 10:25:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:25:01 lo 32.24 32.24 13.35 13.35 0.00 0.00 0.00 0.00 10:48:07 10:25:01 ens3 1.42 1.18 0.40 0.32 0.00 0.00 0.00 0.00 10:48:07 10:26:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:26:01 lo 17.80 17.80 5.29 5.29 0.00 0.00 0.00 0.00 10:48:07 10:26:01 ens3 0.67 0.88 0.13 0.14 0.00 0.00 0.00 0.00 10:48:07 10:27:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:27:01 lo 40.89 40.89 12.51 12.51 0.00 0.00 0.00 0.00 10:48:07 10:27:01 ens3 0.47 0.48 0.07 0.07 0.00 0.00 0.00 0.00 10:48:07 10:28:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:28:01 lo 18.13 18.13 5.08 5.08 0.00 0.00 0.00 0.00 10:48:07 10:28:01 ens3 0.60 0.67 0.21 0.15 0.00 0.00 0.00 0.00 10:48:07 10:29:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:29:01 lo 23.45 23.45 7.23 7.23 0.00 0.00 0.00 0.00 10:48:07 10:29:01 ens3 0.42 0.32 0.05 0.04 0.00 0.00 0.00 0.00 10:48:07 10:30:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:30:01 lo 23.10 23.10 6.44 6.44 0.00 0.00 0.00 0.00 10:48:07 10:30:01 ens3 0.33 0.32 0.25 0.21 0.00 0.00 0.00 0.00 10:48:07 10:31:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:31:01 lo 25.01 25.01 6.78 6.78 0.00 0.00 0.00 0.00 10:48:07 10:31:01 ens3 0.22 0.13 0.02 0.01 0.00 0.00 0.00 0.00 10:48:07 10:32:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:32:01 lo 22.00 22.00 6.37 6.37 0.00 0.00 0.00 0.00 10:48:07 10:32:01 ens3 0.62 0.00 0.06 0.00 0.00 0.00 0.00 0.00 10:48:07 10:33:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:33:01 lo 11.26 11.26 2.58 2.58 0.00 0.00 0.00 0.00 10:48:07 10:33:01 ens3 2.27 2.18 1.18 0.96 0.00 0.00 0.00 0.00 10:48:07 10:34:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:34:01 lo 34.61 34.61 32.54 32.54 0.00 0.00 0.00 0.00 10:48:07 10:34:01 ens3 0.60 0.60 0.08 0.08 0.00 0.00 0.00 0.00 10:48:07 10:35:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:35:01 lo 35.64 35.64 14.38 14.38 0.00 0.00 0.00 0.00 10:48:07 10:35:01 ens3 1.35 1.83 0.28 0.29 0.00 0.00 0.00 0.00 10:48:07 10:36:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:36:01 lo 3.62 3.62 0.81 0.81 0.00 0.00 0.00 0.00 10:48:07 10:36:01 ens3 0.67 0.70 0.09 0.10 0.00 0.00 0.00 0.00 10:48:07 10:37:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:37:01 lo 38.19 38.19 19.52 19.52 0.00 0.00 0.00 0.00 10:48:07 10:37:01 ens3 0.90 1.20 0.18 0.19 0.00 0.00 0.00 0.00 10:48:07 10:38:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:38:01 lo 12.06 12.06 5.38 5.38 0.00 0.00 0.00 0.00 10:48:07 10:38:01 ens3 1.42 1.22 0.34 0.25 0.00 0.00 0.00 0.00 10:48:07 10:39:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:39:01 lo 21.66 21.66 8.32 8.32 0.00 0.00 0.00 0.00 10:48:07 10:39:01 ens3 0.82 0.95 0.34 0.30 0.00 0.00 0.00 0.00 10:48:07 10:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:40:01 lo 20.78 20.78 8.06 8.06 0.00 0.00 0.00 0.00 10:48:07 10:40:01 ens3 0.75 0.92 0.14 0.15 0.00 0.00 0.00 0.00 10:48:07 10:41:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:41:01 lo 40.96 40.96 14.45 14.45 0.00 0.00 0.00 0.00 10:48:07 10:41:01 ens3 1.13 0.97 0.18 0.16 0.00 0.00 0.00 0.00 10:48:07 10:42:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:42:01 lo 36.71 36.71 11.96 11.96 0.00 0.00 0.00 0.00 10:48:07 10:42:01 ens3 0.78 0.90 0.35 0.31 0.00 0.00 0.00 0.00 10:48:07 10:43:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:43:01 lo 5.47 5.47 1.19 1.19 0.00 0.00 0.00 0.00 10:48:07 10:43:01 ens3 1.10 0.95 0.28 0.20 0.00 0.00 0.00 0.00 10:48:07 10:44:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:44:01 lo 43.86 43.86 21.64 21.64 0.00 0.00 0.00 0.00 10:48:07 10:44:01 ens3 0.72 0.62 0.12 0.11 0.00 0.00 0.00 0.00 10:48:07 10:45:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:45:01 lo 40.21 40.21 14.54 14.54 0.00 0.00 0.00 0.00 10:48:07 10:45:01 ens3 0.85 0.82 0.17 0.16 0.00 0.00 0.00 0.00 10:48:07 10:46:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:46:01 lo 62.29 62.29 21.47 21.47 0.00 0.00 0.00 0.00 10:48:07 10:46:01 ens3 1.23 1.48 0.14 7.05 0.00 0.00 0.00 0.00 10:48:07 10:47:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:47:01 lo 70.84 70.84 23.15 23.15 0.00 0.00 0.00 0.00 10:48:07 10:47:01 ens3 4.73 5.53 27.13 1.30 0.00 0.00 0.00 0.00 10:48:07 10:48:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 10:48:01 lo 0.93 0.93 0.09 0.09 0.00 0.00 0.00 0.00 10:48:07 10:48:01 ens3 125.70 105.18 1585.75 20.11 0.00 0.00 0.00 0.00 10:48:07 Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:48:07 Average: lo 19.28 19.28 8.59 8.59 0.00 0.00 0.00 0.00 10:48:07 Average: ens3 14.75 11.34 171.39 1.80 0.00 0.00 0.00 0.00 10:48:07 10:48:07 10:48:07 ---> sar -P ALL: 10:48:07 Linux 5.4.0-200-generic (prd-ubuntu2004-docker-4c-16g-11399) 11/29/24 _x86_64_ (4 CPU) 10:48:07 10:48:07 08:46:32 LINUX RESTART (4 CPU) 10:48:07 10:48:07 08:47:02 CPU %user %nice %system %iowait %steal %idle 10:48:07 08:48:01 all 20.74 14.86 12.10 4.29 0.12 47.89 10:48:07 08:48:01 0 14.57 15.58 11.86 4.31 0.12 53.56 10:48:07 08:48:01 1 24.24 13.26 11.85 3.95 0.10 46.59 10:48:07 08:48:01 2 14.90 16.59 12.30 3.75 0.12 52.34 10:48:07 08:48:01 3 29.23 14.03 12.38 5.14 0.14 39.07 10:48:07 08:49:01 all 34.77 0.00 3.34 5.93 0.09 55.88 10:48:07 08:49:01 0 26.19 0.00 3.32 5.14 0.10 65.25 10:48:07 08:49:01 1 44.33 0.00 3.83 2.62 0.12 49.10 10:48:07 08:49:01 2 38.69 0.00 3.85 7.84 0.08 49.53 10:48:07 08:49:01 3 29.91 0.00 2.35 8.13 0.05 59.57 10:48:07 08:50:01 all 81.43 0.00 2.78 2.92 0.12 12.75 10:48:07 08:50:01 0 84.24 0.00 2.44 0.97 0.10 12.25 10:48:07 08:50:01 1 81.57 0.00 2.62 2.30 0.12 13.39 10:48:07 08:50:01 2 76.94 0.00 3.71 7.06 0.12 12.18 10:48:07 08:50:01 3 83.00 0.00 2.35 1.32 0.14 13.20 10:48:07 08:51:01 all 59.88 0.00 3.40 1.55 0.12 35.05 10:48:07 08:51:01 0 50.57 0.00 3.55 1.27 0.14 44.48 10:48:07 08:51:01 1 66.16 0.00 3.22 0.61 0.14 29.87 10:48:07 08:51:01 2 52.06 0.00 2.97 0.42 0.10 44.45 10:48:07 08:51:01 3 70.71 0.00 3.86 3.87 0.12 21.44 10:48:07 08:52:01 all 80.81 0.00 4.86 8.75 0.15 5.43 10:48:07 08:52:01 0 81.41 0.00 4.96 6.67 0.15 6.81 10:48:07 08:52:01 1 80.57 0.00 5.44 9.50 0.17 4.32 10:48:07 08:52:01 2 82.24 0.00 4.57 5.02 0.14 8.03 10:48:07 08:52:01 3 79.02 0.00 4.48 13.79 0.13 2.58 10:48:07 08:53:01 all 65.16 0.00 2.57 2.77 0.13 29.38 10:48:07 08:53:01 0 62.32 0.00 3.49 3.49 0.12 30.59 10:48:07 08:53:01 1 67.40 0.00 2.20 1.02 0.15 29.23 10:48:07 08:53:01 2 63.79 0.00 2.53 5.62 0.12 27.93 10:48:07 08:53:01 3 67.11 0.00 2.07 0.96 0.12 29.75 10:48:07 08:54:01 all 22.06 0.00 0.81 0.29 0.08 76.76 10:48:07 08:54:01 0 23.61 0.00 0.80 0.03 0.08 75.47 10:48:07 08:54:01 1 19.03 0.00 0.96 0.74 0.08 79.19 10:48:07 08:54:01 2 21.42 0.00 0.75 0.32 0.07 77.45 10:48:07 08:54:01 3 24.17 0.00 0.72 0.07 0.10 74.95 10:48:07 08:55:01 all 23.75 0.00 0.93 0.27 0.08 74.96 10:48:07 08:55:01 0 25.15 0.00 0.92 0.03 0.08 73.81 10:48:07 08:55:01 1 21.51 0.00 1.21 0.66 0.10 76.52 10:48:07 08:55:01 2 24.74 0.00 0.45 0.03 0.07 74.70 10:48:07 08:55:01 3 23.60 0.00 1.13 0.36 0.08 74.82 10:48:07 08:56:01 all 54.31 0.00 1.83 0.65 0.10 43.12 10:48:07 08:56:01 0 57.56 0.00 2.35 0.75 0.10 39.24 10:48:07 08:56:01 1 54.91 0.00 2.13 1.68 0.08 41.20 10:48:07 08:56:01 2 58.89 0.00 1.24 0.13 0.10 39.63 10:48:07 08:56:01 3 45.86 0.00 1.59 0.03 0.10 52.42 10:48:07 08:57:01 all 63.40 0.00 2.32 0.52 0.10 33.66 10:48:07 08:57:01 0 65.86 0.00 2.73 1.66 0.10 29.64 10:48:07 08:57:01 1 64.03 0.00 2.34 0.08 0.12 33.43 10:48:07 08:57:01 2 68.48 0.00 1.86 0.10 0.10 29.46 10:48:07 08:57:01 3 55.20 0.00 2.35 0.22 0.10 42.13 10:48:07 08:58:01 all 13.97 0.00 0.53 0.02 0.10 85.38 10:48:07 08:58:01 0 15.87 0.00 0.42 0.03 0.10 83.58 10:48:07 08:58:01 1 13.16 0.00 0.59 0.00 0.10 86.15 10:48:07 08:58:01 2 12.89 0.00 0.53 0.02 0.10 86.46 10:48:07 08:58:01 3 13.96 0.00 0.59 0.02 0.12 85.32 10:48:07 10:48:07 08:58:01 CPU %user %nice %system %iowait %steal %idle 10:48:07 08:59:01 all 3.59 0.00 0.33 0.01 0.09 95.98 10:48:07 08:59:01 0 3.11 0.00 0.32 0.03 0.10 96.43 10:48:07 08:59:01 1 3.45 0.00 0.30 0.00 0.10 96.15 10:48:07 08:59:01 2 3.99 0.00 0.32 0.00 0.08 95.61 10:48:07 08:59:01 3 3.80 0.00 0.39 0.02 0.08 95.71 10:48:07 09:00:01 all 0.66 0.00 0.23 0.01 0.08 99.01 10:48:07 09:00:01 0 0.47 0.00 0.15 0.03 0.07 99.28 10:48:07 09:00:01 1 0.75 0.00 0.27 0.00 0.08 98.90 10:48:07 09:00:01 2 0.72 0.00 0.30 0.00 0.10 98.88 10:48:07 09:00:01 3 0.71 0.00 0.22 0.02 0.08 98.97 10:48:07 09:01:01 all 0.58 0.00 0.23 0.01 0.09 99.08 10:48:07 09:01:01 0 0.45 0.00 0.18 0.05 0.08 99.23 10:48:07 09:01:01 1 0.95 0.00 0.37 0.00 0.12 98.56 10:48:07 09:01:01 2 0.50 0.00 0.25 0.00 0.10 99.15 10:48:07 09:01:01 3 0.42 0.00 0.13 0.00 0.07 99.38 10:48:07 09:02:01 all 11.56 0.00 0.75 0.41 0.09 87.19 10:48:07 09:02:01 0 12.47 0.00 0.80 0.85 0.07 85.81 10:48:07 09:02:01 1 12.49 0.00 0.65 0.05 0.12 86.69 10:48:07 09:02:01 2 11.53 0.00 0.52 0.18 0.08 87.68 10:48:07 09:02:01 3 9.75 0.00 1.01 0.55 0.10 88.59 10:48:07 09:03:01 all 70.41 0.00 2.22 0.98 0.12 26.27 10:48:07 09:03:01 0 74.18 0.00 2.05 1.91 0.10 21.76 10:48:07 09:03:01 1 71.84 0.00 1.98 0.58 0.12 25.48 10:48:07 09:03:01 2 71.68 0.00 2.26 0.17 0.14 25.76 10:48:07 09:03:01 3 63.95 0.00 2.61 1.23 0.12 32.09 10:48:07 09:04:01 all 15.75 0.00 0.42 0.26 0.10 83.46 10:48:07 09:04:01 0 15.61 0.00 0.54 0.74 0.10 83.01 10:48:07 09:04:01 1 16.33 0.00 0.27 0.07 0.10 83.23 10:48:07 09:04:01 2 15.26 0.00 0.44 0.05 0.12 84.14 10:48:07 09:04:01 3 15.80 0.00 0.43 0.20 0.10 83.47 10:48:07 09:05:01 all 6.32 0.00 0.25 0.02 0.07 93.34 10:48:07 09:05:01 0 5.90 0.00 0.15 0.03 0.07 93.85 10:48:07 09:05:01 1 5.54 0.00 0.34 0.05 0.07 94.01 10:48:07 09:05:01 2 6.56 0.00 0.34 0.00 0.07 93.04 10:48:07 09:05:01 3 7.26 0.00 0.20 0.00 0.07 92.47 10:48:07 09:06:01 all 2.18 0.00 0.17 0.03 0.08 97.55 10:48:07 09:06:01 0 2.21 0.00 0.13 0.00 0.05 97.61 10:48:07 09:06:01 1 2.05 0.00 0.20 0.10 0.08 97.57 10:48:07 09:06:01 2 2.23 0.00 0.12 0.00 0.08 97.57 10:48:07 09:06:01 3 2.24 0.00 0.24 0.00 0.08 97.44 10:48:07 09:07:01 all 23.88 0.00 0.90 0.41 0.08 74.73 10:48:07 09:07:01 0 24.16 0.00 0.82 0.02 0.08 74.92 10:48:07 09:07:01 1 22.92 0.00 0.86 1.26 0.08 74.88 10:48:07 09:07:01 2 25.64 0.00 1.12 0.08 0.08 73.07 10:48:07 09:07:01 3 22.82 0.00 0.79 0.25 0.08 76.06 10:48:07 09:08:01 all 70.74 0.00 2.01 0.45 0.11 26.68 10:48:07 09:08:01 0 68.96 0.00 2.12 0.02 0.12 28.78 10:48:07 09:08:01 1 71.03 0.00 1.85 1.02 0.12 25.99 10:48:07 09:08:01 2 72.88 0.00 2.28 0.74 0.12 23.99 10:48:07 09:08:01 3 70.09 0.00 1.80 0.03 0.10 27.98 10:48:07 09:09:01 all 7.87 0.00 0.43 0.02 0.08 91.59 10:48:07 09:09:01 0 8.13 0.00 0.45 0.00 0.08 91.34 10:48:07 09:09:01 1 8.28 0.00 0.57 0.07 0.08 91.00 10:48:07 09:09:01 2 7.75 0.00 0.48 0.02 0.10 91.65 10:48:07 09:09:01 3 7.30 0.00 0.23 0.00 0.07 92.40 10:48:07 10:48:07 09:09:01 CPU %user %nice %system %iowait %steal %idle 10:48:07 09:10:01 all 2.56 0.00 0.31 0.01 0.09 97.03 10:48:07 09:10:01 0 2.24 0.00 0.18 0.00 0.07 97.51 10:48:07 09:10:01 1 3.52 0.00 0.31 0.03 0.08 96.05 10:48:07 09:10:01 2 1.79 0.00 0.27 0.00 0.10 97.84 10:48:07 09:10:01 3 2.69 0.00 0.48 0.00 0.10 96.73 10:48:07 09:11:01 all 4.12 0.00 0.37 0.01 0.08 95.42 10:48:07 09:11:01 0 3.88 0.00 0.33 0.00 0.08 95.70 10:48:07 09:11:01 1 3.92 0.00 0.33 0.03 0.08 95.63 10:48:07 09:11:01 2 4.40 0.00 0.35 0.00 0.07 95.18 10:48:07 09:11:01 3 4.27 0.00 0.47 0.00 0.08 95.18 10:48:07 09:12:01 all 40.22 0.00 1.39 0.40 0.11 57.87 10:48:07 09:12:01 0 38.77 0.00 1.37 0.40 0.10 59.36 10:48:07 09:12:01 1 35.90 0.00 1.37 0.70 0.12 61.91 10:48:07 09:12:01 2 43.48 0.00 1.13 0.08 0.12 55.19 10:48:07 09:12:01 3 42.73 0.00 1.70 0.43 0.10 55.03 10:48:07 09:13:01 all 56.88 0.00 1.64 0.28 0.10 41.10 10:48:07 09:13:01 0 56.26 0.00 1.83 0.10 0.10 41.72 10:48:07 09:13:01 1 55.55 0.00 1.62 0.65 0.10 42.08 10:48:07 09:13:01 2 57.10 0.00 1.55 0.37 0.10 40.88 10:48:07 09:13:01 3 58.60 0.00 1.55 0.02 0.12 39.72 10:48:07 09:14:01 all 13.28 0.00 0.80 0.36 0.10 85.46 10:48:07 09:14:01 0 11.98 0.00 0.57 0.00 0.10 87.36 10:48:07 09:14:01 1 15.00 0.00 0.79 0.82 0.08 83.31 10:48:07 09:14:01 2 13.80 0.00 0.94 0.41 0.10 84.75 10:48:07 09:14:01 3 12.36 0.00 0.90 0.22 0.10 86.42 10:48:07 09:15:01 all 53.28 0.00 1.71 0.99 0.11 43.92 10:48:07 09:15:01 0 49.68 0.00 1.59 2.74 0.10 45.89 10:48:07 09:15:01 1 59.49 0.00 1.93 0.87 0.13 37.57 10:48:07 09:15:01 2 54.55 0.00 1.59 0.07 0.10 43.69 10:48:07 09:15:01 3 49.41 0.00 1.72 0.27 0.12 48.49 10:48:07 09:16:01 all 19.52 0.00 0.68 0.30 0.08 79.42 10:48:07 09:16:01 0 19.52 0.00 0.65 0.75 0.08 79.00 10:48:07 09:16:01 1 18.43 0.00 0.80 0.37 0.08 80.32 10:48:07 09:16:01 2 19.70 0.00 0.52 0.05 0.08 79.65 10:48:07 09:16:01 3 20.44 0.00 0.75 0.02 0.08 78.71 10:48:07 09:17:01 all 3.22 0.00 0.33 0.02 0.09 96.33 10:48:07 09:17:01 0 3.94 0.00 0.30 0.03 0.08 95.65 10:48:07 09:17:01 1 3.29 0.00 0.40 0.03 0.08 96.19 10:48:07 09:17:01 2 2.82 0.00 0.30 0.00 0.10 96.78 10:48:07 09:17:01 3 2.83 0.00 0.33 0.02 0.10 96.72 10:48:07 09:18:01 all 36.19 0.00 1.23 0.27 0.10 62.22 10:48:07 09:18:01 0 38.57 0.00 1.91 0.59 0.10 58.84 10:48:07 09:18:01 1 35.18 0.00 0.92 0.10 0.10 63.70 10:48:07 09:18:01 2 36.37 0.00 1.02 0.35 0.08 62.18 10:48:07 09:18:01 3 34.64 0.00 1.07 0.03 0.10 64.15 10:48:07 09:19:01 all 6.85 0.00 0.24 0.02 0.10 92.79 10:48:07 09:19:01 0 6.90 0.00 0.20 0.05 0.10 92.75 10:48:07 09:19:01 1 7.27 0.00 0.32 0.00 0.10 92.31 10:48:07 09:19:01 2 6.53 0.00 0.23 0.00 0.08 93.15 10:48:07 09:19:01 3 6.70 0.00 0.20 0.03 0.10 92.96 10:48:07 09:20:01 all 26.19 0.00 0.95 0.08 0.10 72.68 10:48:07 09:20:01 0 27.59 0.00 0.59 0.15 0.10 71.57 10:48:07 09:20:01 1 21.62 0.00 0.94 0.15 0.08 77.21 10:48:07 09:20:01 2 27.89 0.00 1.16 0.00 0.10 70.86 10:48:07 09:20:01 3 27.68 0.00 1.12 0.02 0.10 71.08 10:48:07 10:48:07 09:20:01 CPU %user %nice %system %iowait %steal %idle 10:48:07 09:21:01 all 12.50 0.00 0.58 0.42 0.10 86.40 10:48:07 09:21:01 0 10.33 0.00 0.74 1.56 0.10 87.28 10:48:07 09:21:01 1 18.32 0.00 0.75 0.10 0.10 80.73 10:48:07 09:21:01 2 10.60 0.00 0.49 0.02 0.08 88.82 10:48:07 09:21:01 3 10.69 0.00 0.35 0.02 0.10 88.83 10:48:07 09:22:01 all 41.40 0.00 1.14 0.54 0.10 56.82 10:48:07 09:22:01 0 43.26 0.00 1.17 1.10 0.10 54.36 10:48:07 09:22:01 1 43.38 0.00 1.21 0.15 0.10 55.16 10:48:07 09:22:01 2 37.48 0.00 1.34 0.00 0.12 61.06 10:48:07 09:22:01 3 41.46 0.00 0.82 0.90 0.10 56.71 10:48:07 09:23:01 all 37.27 0.00 1.29 0.29 0.11 61.04 10:48:07 09:23:01 0 39.31 0.00 1.76 0.87 0.10 57.96 10:48:07 09:23:01 1 39.11 0.00 1.34 0.20 0.10 59.25 10:48:07 09:23:01 2 33.39 0.00 0.87 0.02 0.13 65.59 10:48:07 09:23:01 3 37.27 0.00 1.19 0.07 0.12 61.35 10:48:07 09:24:01 all 43.65 0.00 1.23 0.29 0.09 54.73 10:48:07 09:24:01 0 41.68 0.00 1.53 0.70 0.10 55.99 10:48:07 09:24:01 1 44.95 0.00 1.14 0.10 0.08 53.73 10:48:07 09:24:01 2 43.29 0.00 1.47 0.30 0.10 54.83 10:48:07 09:24:01 3 44.68 0.00 0.80 0.05 0.08 54.39 10:48:07 09:25:01 all 5.17 0.00 0.33 0.02 0.10 94.39 10:48:07 09:25:01 0 5.24 0.00 0.40 0.02 0.10 94.24 10:48:07 09:25:01 1 5.56 0.00 0.33 0.02 0.10 93.99 10:48:07 09:25:01 2 4.53 0.00 0.28 0.00 0.10 95.08 10:48:07 09:25:01 3 5.34 0.00 0.28 0.03 0.10 94.24 10:48:07 09:26:01 all 28.06 0.00 1.01 0.24 0.10 70.59 10:48:07 09:26:01 0 28.71 0.00 0.75 0.45 0.08 70.00 10:48:07 09:26:01 1 26.16 0.00 1.16 0.44 0.12 72.13 10:48:07 09:26:01 2 28.93 0.00 1.12 0.00 0.12 69.84 10:48:07 09:26:01 3 28.44 0.00 1.01 0.07 0.08 70.41 10:48:07 09:27:01 all 29.03 0.00 0.95 0.28 0.10 69.64 10:48:07 09:27:01 0 25.11 0.00 1.01 0.80 0.10 72.98 10:48:07 09:27:01 1 29.74 0.00 0.77 0.02 0.10 69.38 10:48:07 09:27:01 2 30.18 0.00 1.06 0.27 0.10 68.39 10:48:07 09:27:01 3 31.09 0.00 0.97 0.03 0.10 67.81 10:48:07 09:28:01 all 1.63 0.00 0.25 0.01 0.08 98.03 10:48:07 09:28:01 0 1.60 0.00 0.25 0.03 0.08 98.03 10:48:07 09:28:01 1 2.08 0.00 0.37 0.00 0.08 97.47 10:48:07 09:28:01 2 1.49 0.00 0.20 0.00 0.08 98.23 10:48:07 09:28:01 3 1.35 0.00 0.18 0.02 0.05 98.40 10:48:07 09:29:01 all 60.69 0.00 1.75 0.34 0.08 37.14 10:48:07 09:29:01 0 60.19 0.00 1.96 0.89 0.07 36.90 10:48:07 09:29:01 1 62.74 0.00 1.68 0.03 0.08 35.47 10:48:07 09:29:01 2 59.16 0.00 1.69 0.12 0.08 38.95 10:48:07 09:29:01 3 60.66 0.00 1.69 0.32 0.10 37.23 10:48:07 09:30:01 all 10.79 0.00 0.37 0.22 0.10 88.53 10:48:07 09:30:01 0 11.11 0.00 0.29 0.44 0.10 88.07 10:48:07 09:30:01 1 11.43 0.00 0.42 0.08 0.10 87.97 10:48:07 09:30:01 2 10.45 0.00 0.37 0.00 0.10 89.08 10:48:07 09:30:01 3 10.16 0.00 0.42 0.35 0.08 88.99 10:48:07 09:31:01 all 38.85 0.00 1.09 0.29 0.10 59.68 10:48:07 09:31:01 0 39.95 0.00 1.70 0.91 0.08 57.37 10:48:07 09:31:01 1 39.54 0.00 0.69 0.02 0.10 59.65 10:48:07 09:31:01 2 37.33 0.00 0.99 0.03 0.10 61.54 10:48:07 09:31:01 3 38.58 0.00 0.97 0.20 0.10 60.14 10:48:07 10:48:07 09:31:01 CPU %user %nice %system %iowait %steal %idle 10:48:07 09:32:01 all 15.59 0.00 0.57 0.06 0.09 83.68 10:48:07 09:32:01 0 15.93 0.00 0.33 0.05 0.08 83.60 10:48:07 09:32:01 1 15.19 0.00 0.71 0.15 0.08 83.87 10:48:07 09:32:01 2 15.03 0.00 0.77 0.00 0.10 84.09 10:48:07 09:32:01 3 16.21 0.00 0.49 0.03 0.10 83.17 10:48:07 09:33:01 all 37.61 0.00 1.02 0.27 0.09 61.01 10:48:07 09:33:01 0 38.40 0.00 1.12 0.52 0.10 59.86 10:48:07 09:33:01 1 39.89 0.00 1.22 0.20 0.10 58.59 10:48:07 09:33:01 2 38.67 0.00 0.89 0.28 0.08 60.07 10:48:07 09:33:01 3 33.52 0.00 0.85 0.07 0.08 65.48 10:48:07 09:34:01 all 7.61 0.00 0.31 0.01 0.10 91.97 10:48:07 09:34:01 0 7.68 0.00 0.28 0.00 0.08 91.95 10:48:07 09:34:01 1 7.49 0.00 0.35 0.00 0.10 92.06 10:48:07 09:34:01 2 6.90 0.00 0.32 0.00 0.10 92.68 10:48:07 09:34:01 3 8.37 0.00 0.28 0.05 0.10 91.20 10:48:07 09:35:01 all 13.19 0.00 0.59 0.06 0.08 86.08 10:48:07 09:35:01 0 11.43 0.00 0.58 0.17 0.08 87.74 10:48:07 09:35:01 1 14.12 0.00 0.57 0.00 0.07 85.25 10:48:07 09:35:01 2 13.69 0.00 0.55 0.00 0.08 85.68 10:48:07 09:35:01 3 13.52 0.00 0.67 0.07 0.10 85.64 10:48:07 09:36:01 all 39.38 0.00 1.01 0.29 0.09 59.23 10:48:07 09:36:01 0 35.72 0.00 0.80 0.47 0.08 62.93 10:48:07 09:36:01 1 41.27 0.00 0.84 0.00 0.10 57.79 10:48:07 09:36:01 2 39.12 0.00 0.82 0.02 0.08 59.96 10:48:07 09:36:01 3 41.44 0.00 1.59 0.67 0.08 56.21 10:48:07 09:37:01 all 6.90 0.00 0.25 0.01 0.10 92.73 10:48:07 09:37:01 0 6.69 0.00 0.29 0.00 0.12 92.91 10:48:07 09:37:01 1 6.83 0.00 0.27 0.00 0.10 92.80 10:48:07 09:37:01 2 6.75 0.00 0.23 0.00 0.10 92.91 10:48:07 09:37:01 3 7.33 0.00 0.22 0.05 0.08 92.32 10:48:07 09:38:01 all 3.23 0.00 0.20 0.01 0.08 96.48 10:48:07 09:38:01 0 2.97 0.00 0.20 0.00 0.07 96.76 10:48:07 09:38:01 1 3.40 0.00 0.20 0.02 0.07 96.31 10:48:07 09:38:01 2 2.73 0.00 0.22 0.00 0.08 96.96 10:48:07 09:38:01 3 3.81 0.00 0.17 0.03 0.10 95.89 10:48:07 09:39:01 all 1.27 0.00 0.13 0.03 0.09 98.48 10:48:07 09:39:01 0 0.87 0.00 0.15 0.02 0.10 98.86 10:48:07 09:39:01 1 0.76 0.00 0.15 0.00 0.10 98.99 10:48:07 09:39:01 2 1.99 0.00 0.12 0.00 0.08 97.81 10:48:07 09:39:01 3 1.47 0.00 0.12 0.08 0.08 98.25 10:48:07 09:40:01 all 3.02 0.00 0.20 0.01 0.09 96.69 10:48:07 09:40:01 0 3.07 0.00 0.24 0.00 0.10 96.59 10:48:07 09:40:01 1 2.85 0.00 0.18 0.00 0.08 96.88 10:48:07 09:40:01 2 3.05 0.00 0.18 0.00 0.10 96.66 10:48:07 09:40:01 3 3.09 0.00 0.18 0.03 0.08 96.61 10:48:07 09:41:01 all 1.41 0.00 0.15 0.04 0.10 98.30 10:48:07 09:41:01 0 1.66 0.00 0.08 0.00 0.12 98.14 10:48:07 09:41:01 1 1.28 0.00 0.15 0.07 0.08 98.42 10:48:07 09:41:01 2 1.24 0.00 0.12 0.00 0.12 98.52 10:48:07 09:41:01 3 1.46 0.00 0.23 0.10 0.10 98.11 10:48:07 09:42:01 all 1.64 0.00 0.15 0.01 0.09 98.11 10:48:07 09:42:01 0 1.90 0.00 0.17 0.00 0.12 97.82 10:48:07 09:42:01 1 1.59 0.00 0.12 0.00 0.07 98.22 10:48:07 09:42:01 2 1.46 0.00 0.10 0.00 0.07 98.37 10:48:07 09:42:01 3 1.61 0.00 0.20 0.05 0.10 98.03 10:48:07 10:48:07 09:42:01 CPU %user %nice %system %iowait %steal %idle 10:48:07 09:43:01 all 2.38 0.00 0.19 0.01 0.08 97.34 10:48:07 09:43:01 0 2.57 0.00 0.17 0.00 0.07 97.19 10:48:07 09:43:01 1 1.91 0.00 0.12 0.00 0.05 97.92 10:48:07 09:43:01 2 2.59 0.00 0.25 0.00 0.08 97.07 10:48:07 09:43:01 3 2.43 0.00 0.24 0.05 0.12 97.16 10:48:07 09:44:01 all 49.43 0.00 1.78 0.31 0.10 48.39 10:48:07 09:44:01 0 47.13 0.00 1.72 0.05 0.08 51.02 10:48:07 09:44:01 1 50.71 0.00 1.66 0.10 0.12 47.42 10:48:07 09:44:01 2 49.91 0.00 1.67 0.22 0.10 48.10 10:48:07 09:44:01 3 49.97 0.00 2.06 0.85 0.10 47.02 10:48:07 09:45:01 all 8.91 0.00 0.45 0.02 0.10 90.53 10:48:07 09:45:01 0 9.86 0.00 0.28 0.00 0.10 89.76 10:48:07 09:45:01 1 8.62 0.00 0.53 0.00 0.08 90.76 10:48:07 09:45:01 2 8.49 0.00 0.47 0.00 0.10 90.94 10:48:07 09:45:01 3 8.65 0.00 0.50 0.08 0.10 90.66 10:48:07 09:46:01 all 4.70 0.00 0.36 0.02 0.11 94.81 10:48:07 09:46:01 0 4.51 0.00 0.37 0.00 0.12 95.01 10:48:07 09:46:01 1 4.91 0.00 0.42 0.00 0.12 94.56 10:48:07 09:46:01 2 4.81 0.00 0.38 0.00 0.10 94.70 10:48:07 09:46:01 3 4.58 0.00 0.25 0.08 0.12 94.96 10:48:07 09:47:01 all 2.96 0.00 0.34 0.03 0.08 96.59 10:48:07 09:47:01 0 2.62 0.00 0.37 0.02 0.08 96.91 10:48:07 09:47:01 1 3.42 0.00 0.28 0.00 0.08 96.22 10:48:07 09:47:01 2 3.05 0.00 0.30 0.00 0.10 96.55 10:48:07 09:47:01 3 2.75 0.00 0.40 0.08 0.07 96.69 10:48:07 09:48:01 all 2.35 0.00 0.32 0.03 0.08 97.21 10:48:07 09:48:01 0 2.17 0.00 0.27 0.03 0.07 97.46 10:48:07 09:48:01 1 2.14 0.00 0.27 0.00 0.07 97.52 10:48:07 09:48:01 2 1.96 0.00 0.35 0.00 0.08 97.60 10:48:07 09:48:01 3 3.13 0.00 0.40 0.08 0.12 96.27 10:48:07 09:49:01 all 1.89 0.00 0.30 0.49 0.08 97.23 10:48:07 09:49:01 0 1.17 0.00 0.33 0.28 0.08 98.13 10:48:07 09:49:01 1 1.14 0.00 0.15 0.00 0.07 98.65 10:48:07 09:49:01 2 2.23 0.00 0.33 0.42 0.08 96.94 10:48:07 09:49:01 3 3.05 0.00 0.38 1.27 0.10 95.20 10:48:07 09:50:01 all 4.07 0.00 0.38 0.05 0.08 95.42 10:48:07 09:50:01 0 3.97 0.00 0.32 0.00 0.07 95.64 10:48:07 09:50:01 1 3.06 0.00 0.32 0.00 0.07 96.56 10:48:07 09:50:01 2 3.55 0.00 0.42 0.00 0.07 95.97 10:48:07 09:50:01 3 5.69 0.00 0.47 0.18 0.13 93.52 10:48:07 09:51:01 all 35.84 0.00 1.33 0.04 0.10 62.69 10:48:07 09:51:01 0 37.67 0.00 0.97 0.02 0.10 61.25 10:48:07 09:51:01 1 36.45 0.00 1.32 0.00 0.10 62.12 10:48:07 09:51:01 2 30.48 0.00 1.26 0.03 0.10 68.12 10:48:07 09:51:01 3 38.82 0.00 1.74 0.10 0.12 59.22 10:48:07 09:52:01 all 30.28 0.00 0.89 0.26 0.09 68.47 10:48:07 09:52:01 0 28.29 0.00 0.74 0.00 0.08 70.89 10:48:07 09:52:01 1 28.79 0.00 0.96 0.00 0.08 70.17 10:48:07 09:52:01 2 30.72 0.00 1.14 0.42 0.10 67.62 10:48:07 09:52:01 3 33.33 0.00 0.74 0.64 0.10 65.19 10:48:07 09:53:01 all 8.67 0.00 0.30 0.02 0.08 90.93 10:48:07 09:53:01 0 7.89 0.00 0.32 0.00 0.08 91.71 10:48:07 09:53:01 1 8.91 0.00 0.22 0.00 0.08 90.78 10:48:07 09:53:01 2 9.01 0.00 0.32 0.00 0.08 90.59 10:48:07 09:53:01 3 8.87 0.00 0.34 0.08 0.07 90.65 10:48:07 10:48:07 09:53:01 CPU %user %nice %system %iowait %steal %idle 10:48:07 09:54:01 all 3.69 0.00 0.21 0.01 0.08 96.00 10:48:07 09:54:01 0 3.76 0.00 0.20 0.00 0.08 95.95 10:48:07 09:54:01 1 3.89 0.00 0.25 0.00 0.10 95.75 10:48:07 09:54:01 2 4.08 0.00 0.20 0.00 0.08 95.63 10:48:07 09:54:01 3 3.02 0.00 0.20 0.05 0.07 96.67 10:48:07 09:55:01 all 2.35 0.00 0.16 0.02 0.09 97.39 10:48:07 09:55:01 0 2.11 0.00 0.20 0.00 0.08 97.60 10:48:07 09:55:01 1 2.79 0.00 0.13 0.00 0.07 97.01 10:48:07 09:55:01 2 2.44 0.00 0.15 0.00 0.12 97.29 10:48:07 09:55:01 3 2.05 0.00 0.13 0.07 0.10 97.65 10:48:07 09:56:01 all 3.75 0.00 0.24 0.02 0.10 95.90 10:48:07 09:56:01 0 3.67 0.00 0.13 0.02 0.08 96.09 10:48:07 09:56:01 1 3.83 0.00 0.34 0.00 0.12 95.72 10:48:07 09:56:01 2 3.73 0.00 0.27 0.00 0.08 95.92 10:48:07 09:56:01 3 3.79 0.00 0.20 0.05 0.10 95.86 10:48:07 09:57:01 all 2.54 0.00 0.21 0.03 0.08 97.14 10:48:07 09:57:01 0 2.55 0.00 0.27 0.02 0.08 97.08 10:48:07 09:57:01 1 2.77 0.00 0.25 0.02 0.07 96.89 10:48:07 09:57:01 2 2.57 0.00 0.10 0.00 0.08 97.24 10:48:07 09:57:01 3 2.25 0.00 0.22 0.07 0.10 97.37 10:48:07 09:58:01 all 2.85 0.00 0.16 0.02 0.11 96.86 10:48:07 09:58:01 0 2.15 0.00 0.20 0.00 0.13 97.52 10:48:07 09:58:01 1 2.51 0.00 0.15 0.03 0.10 97.20 10:48:07 09:58:01 2 3.33 0.00 0.15 0.02 0.12 96.39 10:48:07 09:58:01 3 3.40 0.00 0.15 0.02 0.10 96.33 10:48:07 09:59:01 all 25.55 0.00 0.90 0.04 0.08 73.43 10:48:07 09:59:01 0 27.46 0.00 0.73 0.02 0.08 71.71 10:48:07 09:59:01 1 25.50 0.00 1.14 0.10 0.08 73.17 10:48:07 09:59:01 2 23.71 0.00 0.67 0.00 0.08 75.53 10:48:07 09:59:01 3 25.52 0.00 1.05 0.03 0.07 73.33 10:48:07 10:00:01 all 37.69 0.00 1.17 0.26 0.11 60.77 10:48:07 10:00:01 0 39.94 0.00 1.48 0.07 0.12 58.40 10:48:07 10:00:01 1 39.45 0.00 0.96 0.50 0.10 58.99 10:48:07 10:00:01 2 35.76 0.00 1.16 0.45 0.12 62.51 10:48:07 10:00:01 3 35.63 0.00 1.08 0.00 0.12 63.17 10:48:07 10:01:01 all 8.71 0.00 0.30 0.08 0.08 90.82 10:48:07 10:01:01 0 8.35 0.00 0.29 0.00 0.07 91.30 10:48:07 10:01:01 1 9.18 0.00 0.34 0.17 0.08 90.24 10:48:07 10:01:01 2 8.82 0.00 0.29 0.00 0.08 90.81 10:48:07 10:01:01 3 8.51 0.00 0.30 0.17 0.10 90.92 10:48:07 10:02:01 all 4.06 0.00 0.25 0.03 0.10 95.55 10:48:07 10:02:01 0 3.92 0.00 0.25 0.00 0.10 95.73 10:48:07 10:02:01 1 3.72 0.00 0.15 0.10 0.10 95.93 10:48:07 10:02:01 2 4.64 0.00 0.28 0.00 0.13 94.95 10:48:07 10:02:01 3 3.95 0.00 0.32 0.03 0.08 95.61 10:48:07 10:03:01 all 2.46 0.00 0.15 0.13 0.09 97.17 10:48:07 10:03:01 0 2.10 0.00 0.10 0.00 0.07 97.74 10:48:07 10:03:01 1 3.61 0.00 0.22 0.15 0.18 95.84 10:48:07 10:03:01 2 1.98 0.00 0.10 0.00 0.05 97.87 10:48:07 10:03:01 3 2.16 0.00 0.18 0.35 0.07 97.23 10:48:07 10:04:01 all 2.93 0.00 0.24 0.02 0.08 96.73 10:48:07 10:04:01 0 2.70 0.00 0.27 0.00 0.08 96.95 10:48:07 10:04:01 1 2.87 0.00 0.25 0.07 0.08 96.73 10:48:07 10:04:01 2 2.60 0.00 0.24 0.00 0.10 97.06 10:48:07 10:04:01 3 3.53 0.00 0.20 0.02 0.07 96.19 10:48:07 10:48:07 10:04:01 CPU %user %nice %system %iowait %steal %idle 10:48:07 10:05:01 all 1.03 0.00 0.16 0.02 0.08 98.72 10:48:07 10:05:01 0 1.27 0.00 0.15 0.00 0.08 98.49 10:48:07 10:05:01 1 0.86 0.00 0.13 0.03 0.08 98.89 10:48:07 10:05:01 2 1.21 0.00 0.20 0.00 0.08 98.50 10:48:07 10:05:01 3 0.77 0.00 0.13 0.03 0.07 98.99 10:48:07 10:06:01 all 1.93 0.00 0.15 0.02 0.10 97.80 10:48:07 10:06:01 0 1.98 0.00 0.15 0.00 0.08 97.79 10:48:07 10:06:01 1 2.02 0.00 0.12 0.07 0.07 97.73 10:48:07 10:06:01 2 1.73 0.00 0.15 0.00 0.12 98.00 10:48:07 10:06:01 3 2.00 0.00 0.17 0.02 0.12 97.69 10:48:07 10:07:01 all 1.76 0.00 0.16 0.02 0.06 98.01 10:48:07 10:07:01 0 1.97 0.00 0.12 0.02 0.05 97.85 10:48:07 10:07:01 1 1.64 0.00 0.10 0.02 0.05 98.19 10:48:07 10:07:01 2 1.61 0.00 0.24 0.00 0.08 98.07 10:48:07 10:07:01 3 1.81 0.00 0.17 0.03 0.07 97.92 10:48:07 10:08:01 all 3.01 0.00 0.26 0.02 0.08 96.63 10:48:07 10:08:01 0 2.51 0.00 0.34 0.00 0.07 97.08 10:48:07 10:08:01 1 3.29 0.00 0.22 0.05 0.07 96.37 10:48:07 10:08:01 2 3.70 0.00 0.30 0.00 0.10 95.89 10:48:07 10:08:01 3 2.54 0.00 0.19 0.03 0.08 97.15 10:48:07 10:09:01 all 0.61 0.00 0.13 0.05 0.08 99.13 10:48:07 10:09:01 0 0.57 0.00 0.13 0.00 0.07 99.23 10:48:07 10:09:01 1 0.72 0.00 0.10 0.03 0.10 99.04 10:48:07 10:09:01 2 0.72 0.00 0.18 0.00 0.08 99.01 10:48:07 10:09:01 3 0.43 0.00 0.08 0.18 0.07 99.23 10:48:07 10:10:01 all 0.42 0.00 0.15 0.05 0.08 99.30 10:48:07 10:10:01 0 0.67 0.00 0.15 0.00 0.07 99.12 10:48:07 10:10:01 1 0.57 0.00 0.20 0.18 0.07 98.98 10:48:07 10:10:01 2 0.29 0.00 0.15 0.00 0.10 99.46 10:48:07 10:10:01 3 0.15 0.00 0.12 0.02 0.07 99.65 10:48:07 10:11:02 all 0.23 0.00 0.14 0.28 0.11 99.24 10:48:07 10:11:02 0 0.37 0.00 0.20 0.00 0.10 99.33 10:48:07 10:11:02 1 0.15 0.00 0.12 0.55 0.15 99.03 10:48:07 10:11:02 2 0.18 0.00 0.10 0.35 0.05 99.31 10:48:07 10:11:02 3 0.20 0.00 0.15 0.20 0.15 99.30 10:48:07 10:12:01 all 13.22 0.00 1.00 2.31 0.10 83.38 10:48:07 10:12:01 0 13.65 0.00 1.11 1.93 0.09 83.22 10:48:07 10:12:01 1 15.56 0.00 1.42 6.35 0.12 76.55 10:48:07 10:12:01 2 11.45 0.00 0.70 0.75 0.07 87.02 10:48:07 10:12:01 3 12.23 0.00 0.79 0.22 0.12 86.65 10:48:07 10:13:01 all 33.32 0.00 1.20 2.77 0.13 62.57 10:48:07 10:13:01 0 35.78 0.00 0.93 1.50 0.14 61.65 10:48:07 10:13:01 1 35.47 0.00 1.11 0.77 0.14 62.52 10:48:07 10:13:01 2 28.59 0.00 1.47 8.38 0.12 61.45 10:48:07 10:13:01 3 33.49 0.00 1.30 0.38 0.12 64.71 10:48:07 10:14:01 all 0.56 0.00 0.11 0.02 0.07 99.25 10:48:07 10:14:01 0 0.61 0.00 0.12 0.02 0.08 99.18 10:48:07 10:14:01 1 0.74 0.00 0.15 0.00 0.05 99.06 10:48:07 10:14:01 2 0.42 0.00 0.08 0.03 0.07 99.39 10:48:07 10:14:01 3 0.47 0.00 0.07 0.02 0.08 99.36 10:48:07 10:15:01 all 0.31 0.00 0.10 0.01 0.08 99.51 10:48:07 10:15:01 0 0.17 0.00 0.10 0.00 0.07 99.66 10:48:07 10:15:01 1 0.42 0.00 0.10 0.00 0.08 99.40 10:48:07 10:15:01 2 0.29 0.00 0.12 0.02 0.08 99.50 10:48:07 10:15:01 3 0.35 0.00 0.07 0.02 0.07 99.50 10:48:07 10:48:07 10:15:01 CPU %user %nice %system %iowait %steal %idle 10:48:07 10:16:01 all 0.25 0.00 0.11 0.01 0.08 99.55 10:48:07 10:16:01 0 0.22 0.00 0.07 0.00 0.07 99.65 10:48:07 10:16:01 1 0.20 0.00 0.07 0.00 0.08 99.65 10:48:07 10:16:01 2 0.39 0.00 0.22 0.02 0.12 99.26 10:48:07 10:16:01 3 0.20 0.00 0.08 0.02 0.07 99.63 10:48:07 10:17:01 all 36.21 0.00 1.33 0.41 0.11 61.94 10:48:07 10:17:01 0 37.53 0.00 1.06 0.17 0.10 61.13 10:48:07 10:17:01 1 36.32 0.00 1.29 1.18 0.10 61.11 10:48:07 10:17:01 2 38.01 0.00 1.30 0.12 0.10 60.46 10:48:07 10:17:01 3 32.97 0.00 1.67 0.19 0.12 65.06 10:48:07 10:18:01 all 45.62 0.00 1.67 0.59 0.11 52.01 10:48:07 10:18:01 0 47.26 0.00 1.87 0.36 0.14 50.38 10:48:07 10:18:01 1 46.84 0.00 1.72 1.25 0.10 50.10 10:48:07 10:18:01 2 47.48 0.00 1.48 0.02 0.08 50.94 10:48:07 10:18:01 3 40.95 0.00 1.64 0.74 0.12 56.56 10:48:07 10:19:01 all 7.76 0.00 0.44 0.01 0.08 91.70 10:48:07 10:19:01 0 7.50 0.00 0.38 0.02 0.08 92.01 10:48:07 10:19:01 1 8.16 0.00 0.33 0.00 0.08 91.42 10:48:07 10:19:01 2 7.30 0.00 0.65 0.03 0.08 91.93 10:48:07 10:19:01 3 8.08 0.00 0.38 0.00 0.08 91.45 10:48:07 10:20:01 all 35.30 0.00 1.20 0.28 0.10 63.12 10:48:07 10:20:01 0 36.55 0.00 1.12 0.67 0.08 61.58 10:48:07 10:20:01 1 33.72 0.00 1.35 0.12 0.10 64.70 10:48:07 10:20:01 2 35.53 0.00 1.29 0.07 0.10 63.02 10:48:07 10:20:01 3 35.42 0.00 1.04 0.25 0.10 63.18 10:48:07 10:21:01 all 20.34 0.00 0.84 0.05 0.10 78.67 10:48:07 10:21:01 0 18.10 0.00 0.97 0.18 0.10 80.64 10:48:07 10:21:01 1 21.28 0.00 0.74 0.00 0.10 77.88 10:48:07 10:21:01 2 21.77 0.00 0.84 0.00 0.08 77.31 10:48:07 10:21:01 3 20.21 0.00 0.82 0.02 0.10 78.86 10:48:07 10:22:01 all 34.74 0.00 1.00 0.29 0.09 63.88 10:48:07 10:22:01 0 32.68 0.00 0.99 0.77 0.08 65.47 10:48:07 10:22:01 1 34.10 0.00 0.89 0.03 0.08 64.89 10:48:07 10:22:01 2 35.38 0.00 0.89 0.29 0.10 63.35 10:48:07 10:22:01 3 36.80 0.00 1.22 0.07 0.10 61.82 10:48:07 10:23:01 all 7.03 0.00 0.27 0.04 0.08 92.58 10:48:07 10:23:01 0 6.91 0.00 0.24 0.15 0.10 92.60 10:48:07 10:23:01 1 7.15 0.00 0.30 0.00 0.07 92.48 10:48:07 10:23:01 2 7.03 0.00 0.25 0.00 0.08 92.64 10:48:07 10:23:01 3 7.03 0.00 0.28 0.00 0.08 92.60 10:48:07 10:24:01 all 15.45 0.00 0.71 0.07 0.08 83.69 10:48:07 10:24:01 0 13.14 0.00 0.82 0.22 0.08 85.74 10:48:07 10:24:01 1 16.24 0.00 0.45 0.00 0.08 83.23 10:48:07 10:24:01 2 16.03 0.00 0.71 0.00 0.08 83.18 10:48:07 10:24:01 3 16.38 0.00 0.87 0.05 0.08 82.61 10:48:07 10:25:01 all 38.19 0.00 1.13 0.27 0.16 60.24 10:48:07 10:25:01 0 35.85 0.00 1.16 0.62 0.10 62.26 10:48:07 10:25:01 1 38.81 0.00 1.02 0.00 0.34 59.83 10:48:07 10:25:01 2 40.19 0.00 1.12 0.15 0.10 58.44 10:48:07 10:25:01 3 37.91 0.00 1.23 0.30 0.10 60.46 10:48:07 10:26:01 all 2.74 0.00 0.16 0.02 0.08 96.99 10:48:07 10:26:01 0 2.88 0.00 0.24 0.03 0.08 96.76 10:48:07 10:26:01 1 2.78 0.00 0.10 0.00 0.10 97.02 10:48:07 10:26:01 2 2.66 0.00 0.12 0.05 0.07 97.10 10:48:07 10:26:01 3 2.62 0.00 0.20 0.00 0.08 97.09 10:48:07 10:48:07 10:26:01 CPU %user %nice %system %iowait %steal %idle 10:48:07 10:27:01 all 4.05 0.00 0.29 0.21 0.09 95.36 10:48:07 10:27:01 0 3.74 0.00 0.35 0.64 0.08 95.19 10:48:07 10:27:01 1 4.19 0.00 0.27 0.00 0.08 95.46 10:48:07 10:27:01 2 3.95 0.00 0.27 0.18 0.10 95.50 10:48:07 10:27:01 3 4.32 0.00 0.25 0.02 0.10 95.31 10:48:07 10:28:01 all 2.18 0.00 0.17 0.01 0.09 97.55 10:48:07 10:28:01 0 2.20 0.00 0.17 0.02 0.08 97.53 10:48:07 10:28:01 1 2.45 0.00 0.18 0.00 0.10 97.26 10:48:07 10:28:01 2 2.00 0.00 0.20 0.03 0.08 97.68 10:48:07 10:28:01 3 2.07 0.00 0.13 0.00 0.08 97.71 10:48:07 10:29:01 all 2.11 0.00 0.18 0.05 0.09 97.57 10:48:07 10:29:01 0 2.05 0.00 0.20 0.10 0.10 97.55 10:48:07 10:29:01 1 2.03 0.00 0.18 0.02 0.08 97.68 10:48:07 10:29:01 2 2.17 0.00 0.17 0.05 0.08 97.53 10:48:07 10:29:01 3 2.18 0.00 0.18 0.03 0.08 97.52 10:48:07 10:30:01 all 2.14 0.00 0.19 0.10 0.08 97.49 10:48:07 10:30:01 0 2.45 0.00 0.18 0.40 0.07 96.90 10:48:07 10:30:01 1 2.06 0.00 0.23 0.00 0.08 97.62 10:48:07 10:30:01 2 1.85 0.00 0.20 0.00 0.10 97.85 10:48:07 10:30:01 3 2.18 0.00 0.15 0.00 0.08 97.58 10:48:07 10:31:01 all 2.13 0.00 0.16 0.06 0.08 97.57 10:48:07 10:31:01 0 1.66 0.00 0.18 0.05 0.08 98.02 10:48:07 10:31:01 1 2.04 0.00 0.17 0.00 0.08 97.70 10:48:07 10:31:01 2 2.72 0.00 0.15 0.00 0.08 97.05 10:48:07 10:31:01 3 2.08 0.00 0.15 0.20 0.07 97.50 10:48:07 10:32:01 all 2.18 0.00 0.19 0.07 0.09 97.47 10:48:07 10:32:01 0 2.18 0.00 0.18 0.20 0.10 97.33 10:48:07 10:32:01 1 1.83 0.00 0.15 0.00 0.07 97.96 10:48:07 10:32:01 2 2.26 0.00 0.18 0.00 0.10 97.46 10:48:07 10:32:01 3 2.46 0.00 0.23 0.07 0.10 97.14 10:48:07 10:33:01 all 16.23 0.00 0.90 0.24 0.09 82.54 10:48:07 10:33:01 0 14.29 0.00 0.81 0.47 0.07 84.37 10:48:07 10:33:01 1 22.06 0.00 1.36 0.08 0.12 76.38 10:48:07 10:33:01 2 15.58 0.00 0.71 0.00 0.10 83.61 10:48:07 10:33:01 3 13.00 0.00 0.72 0.42 0.08 85.78 10:48:07 10:34:01 all 48.03 0.00 1.51 0.72 0.10 49.63 10:48:07 10:34:01 0 46.32 0.00 1.39 0.67 0.10 51.52 10:48:07 10:34:01 1 46.14 0.00 1.40 1.39 0.10 50.96 10:48:07 10:34:01 2 51.04 0.00 2.05 0.34 0.10 46.46 10:48:07 10:34:01 3 48.65 0.00 1.21 0.47 0.12 49.55 10:48:07 10:35:01 all 5.32 0.00 0.41 0.03 0.09 94.14 10:48:07 10:35:01 0 4.92 0.00 0.47 0.05 0.10 94.46 10:48:07 10:35:01 1 6.03 0.00 0.37 0.03 0.08 93.49 10:48:07 10:35:01 2 5.10 0.00 0.37 0.02 0.08 94.44 10:48:07 10:35:01 3 5.25 0.00 0.45 0.03 0.08 94.19 10:48:07 10:36:01 all 40.93 0.00 1.41 0.15 0.11 57.40 10:48:07 10:36:01 0 42.37 0.00 2.04 0.12 0.12 55.35 10:48:07 10:36:01 1 34.90 0.00 1.14 0.07 0.12 63.77 10:48:07 10:36:01 2 43.07 0.00 1.13 0.34 0.12 55.35 10:48:07 10:36:01 3 43.41 0.00 1.32 0.07 0.08 55.12 10:48:07 10:37:01 all 18.00 0.00 0.52 0.25 0.08 81.15 10:48:07 10:37:01 0 19.02 0.00 0.64 0.24 0.07 80.04 10:48:07 10:37:01 1 16.67 0.00 0.49 0.03 0.08 82.73 10:48:07 10:37:01 2 17.90 0.00 0.50 0.70 0.08 80.81 10:48:07 10:37:01 3 18.41 0.00 0.47 0.02 0.10 81.01 10:48:07 10:48:07 10:37:01 CPU %user %nice %system %iowait %steal %idle 10:48:07 10:38:01 all 2.43 0.00 0.25 0.01 0.08 97.24 10:48:07 10:38:01 0 2.44 0.00 0.29 0.00 0.08 97.20 10:48:07 10:38:01 1 2.75 0.00 0.20 0.00 0.07 96.98 10:48:07 10:38:01 2 2.06 0.00 0.25 0.02 0.07 97.60 10:48:07 10:38:01 3 2.46 0.00 0.25 0.03 0.08 97.18 10:48:07 10:39:01 all 2.37 0.00 0.20 0.01 0.08 97.33 10:48:07 10:39:01 0 2.42 0.00 0.20 0.00 0.07 97.31 10:48:07 10:39:01 1 2.47 0.00 0.20 0.00 0.08 97.25 10:48:07 10:39:01 2 2.19 0.00 0.18 0.02 0.10 97.51 10:48:07 10:39:01 3 2.42 0.00 0.22 0.03 0.08 97.25 10:48:07 10:40:01 all 2.54 0.00 0.19 0.02 0.08 97.17 10:48:07 10:40:01 0 3.24 0.00 0.20 0.00 0.08 96.47 10:48:07 10:40:01 1 2.26 0.00 0.18 0.00 0.08 97.47 10:48:07 10:40:01 2 2.14 0.00 0.20 0.03 0.08 97.54 10:48:07 10:40:01 3 2.53 0.00 0.17 0.03 0.08 97.19 10:48:07 10:41:01 all 4.18 0.00 0.27 0.07 0.08 95.41 10:48:07 10:41:01 0 4.76 0.00 0.33 0.00 0.07 94.84 10:48:07 10:41:01 1 4.12 0.00 0.20 0.08 0.08 95.51 10:48:07 10:41:01 2 3.53 0.00 0.22 0.05 0.05 96.15 10:48:07 10:41:01 3 4.29 0.00 0.32 0.15 0.10 95.14 10:48:07 10:42:01 all 2.69 0.00 0.22 0.02 0.09 96.99 10:48:07 10:42:01 0 2.33 0.00 0.24 0.00 0.08 97.35 10:48:07 10:42:01 1 2.60 0.00 0.22 0.00 0.10 97.08 10:48:07 10:42:01 2 2.85 0.00 0.20 0.02 0.08 96.85 10:48:07 10:42:01 3 2.98 0.00 0.22 0.05 0.08 96.67 10:48:07 10:43:01 all 32.88 0.00 1.21 0.05 0.10 65.76 10:48:07 10:43:01 0 34.49 0.00 0.77 0.03 0.10 64.60 10:48:07 10:43:01 1 34.80 0.00 1.74 0.05 0.10 63.31 10:48:07 10:43:01 2 31.10 0.00 1.36 0.10 0.08 67.35 10:48:07 10:43:01 3 31.14 0.00 0.96 0.03 0.10 67.77 10:48:07 10:44:01 all 32.77 0.00 0.84 0.26 0.10 66.03 10:48:07 10:44:01 0 31.67 0.00 0.79 0.08 0.10 67.36 10:48:07 10:44:01 1 34.51 0.00 1.14 0.07 0.10 64.19 10:48:07 10:44:01 2 32.93 0.00 0.70 0.22 0.10 66.05 10:48:07 10:44:01 3 31.96 0.00 0.72 0.67 0.12 66.53 10:48:07 10:45:01 all 6.09 0.00 0.31 0.04 0.09 93.47 10:48:07 10:45:01 0 6.56 0.00 0.33 0.07 0.10 92.94 10:48:07 10:45:01 1 5.96 0.00 0.29 0.00 0.08 93.67 10:48:07 10:45:01 2 5.42 0.00 0.37 0.00 0.10 94.11 10:48:07 10:45:01 3 6.40 0.00 0.25 0.10 0.07 93.18 10:48:07 10:46:01 all 6.39 0.00 0.34 0.09 0.08 93.10 10:48:07 10:46:01 0 6.48 0.00 0.33 0.10 0.07 93.02 10:48:07 10:46:01 1 6.46 0.00 0.34 0.10 0.10 93.00 10:48:07 10:46:01 2 6.26 0.00 0.47 0.05 0.08 93.14 10:48:07 10:46:01 3 6.37 0.00 0.20 0.10 0.08 93.25 10:48:07 10:47:01 all 10.47 0.00 0.73 0.17 0.12 88.51 10:48:07 10:47:01 0 8.50 0.00 0.86 0.08 0.12 90.44 10:48:07 10:47:01 1 16.08 0.00 0.94 0.10 0.08 82.80 10:48:07 10:47:01 2 9.47 0.00 0.42 0.00 0.18 89.93 10:48:07 10:47:01 3 7.80 0.00 0.70 0.50 0.10 90.90 10:48:07 10:48:01 all 28.37 0.00 1.58 4.86 0.09 65.10 10:48:07 10:48:01 0 18.36 0.00 1.59 4.76 0.10 75.19 10:48:07 10:48:01 1 26.62 0.00 2.18 4.99 0.10 66.11 10:48:07 10:48:01 2 51.14 0.00 1.37 2.88 0.08 44.52 10:48:07 10:48:01 3 17.33 0.00 1.17 6.83 0.08 74.58 10:48:07 10:48:07 Average: CPU %user %nice %system %iowait %steal %idle 10:48:07 Average: all 18.65 0.12 0.85 0.44 0.09 79.84 10:48:07 Average: 0 18.36 0.13 0.86 0.47 0.09 80.09 10:48:07 Average: 1 19.03 0.11 0.86 0.41 0.10 79.49 10:48:07 Average: 2 18.75 0.13 0.83 0.42 0.09 79.77 10:48:07 Average: 3 18.47 0.11 0.83 0.47 0.09 80.02 10:48:07 10:48:07 10:48:07