docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt 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 checkbashisms: freeze> python -m pip freeze --all docs: install_deps> python -I -m pip install -r docs/requirements.txt checkbashisms: pip==25.2,setuptools==80.9.0 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 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)' checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + checkbashisms: OK ✔ in 3.38 seconds pre-commit: install_deps> python -I -m pip install pre-commit pre-commit: freeze> python -m pip freeze --all pre-commit: cfgv==3.4.0,distlib==0.4.0,filelock==3.19.1,identify==2.6.14,nodeenv==1.9.1,pip==25.2,platformdirs==4.4.0,pre_commit==4.3.0,PyYAML==6.0.2,setuptools==80.9.0,virtualenv==20.34.0 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 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)' /usr/bin/cpan pre-commit: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure [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. [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. [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. [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. [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. buildcontroller: freeze> python -m pip freeze --all [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. buildcontroller: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. 21 [INFO] Initializing environment for https://github.com/perltidy/perltidy. 21 ok, java is 21 or newer Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b) Maven home: /opt/maven Java version: 21.0.5, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 Default locale: en, platform encoding: UTF-8 OS name: "linux", version: "5.15.0-131-generic", arch: "amd64", family: "unix" [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for https://github.com/pre-commit/mirrors-autopep8. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... docs-linkcheck: freeze> python -m pip freeze --all docs: freeze> python -m pip freeze --all docs-linkcheck: alabaster==1.0.0,attrs==25.3.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.8.3,charset-normalizer==3.4.3,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.59.2,funcparserlib==2.0.0a0,future==1.0.0,idna==3.10,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.9,lfdocs-conf==0.9.0,MarkupSafe==3.0.2,matplotlib==3.10.6,numpy==2.3.3,nwdiag==3.0.0,packaging==25.0,pillow==11.3.0,pip==25.2,Pygments==2.19.2,pyparsing==3.2.3,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.5,requests-file==1.5.1,roman-numerals-py==3.1.0,seqdiag==3.0.0,setuptools==80.9.0,six==1.17.0,snowballstemmer==3.0.1,Sphinx==8.2.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.2,sphinx-tabs==3.4.7,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.5.0,webcolors==24.11.1 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 docs: alabaster==1.0.0,attrs==25.3.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.8.3,charset-normalizer==3.4.3,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.59.2,funcparserlib==2.0.0a0,future==1.0.0,idna==3.10,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.9,lfdocs-conf==0.9.0,MarkupSafe==3.0.2,matplotlib==3.10.6,numpy==2.3.3,nwdiag==3.0.0,packaging==25.0,pillow==11.3.0,pip==25.2,Pygments==2.19.2,pyparsing==3.2.3,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.5,requests-file==1.5.1,roman-numerals-py==3.1.0,seqdiag==3.0.0,setuptools==80.9.0,six==1.17.0,snowballstemmer==3.0.1,Sphinx==8.2.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.2,sphinx-tabs==3.4.7,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.5.0,webcolors==24.11.1 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 [INFO] Installing environment for https://github.com/perltidy/perltidy. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... docs: OK ✔ in 32.18 seconds pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' docs-linkcheck: OK ✔ in 33.24 seconds pylint: freeze> python -m pip freeze --all pylint: astroid==3.3.11,dill==0.4.0,isort==6.0.1,mccabe==0.7.0,pip==25.2,platformdirs==4.4.0,pylint==3.3.8,setuptools==80.9.0,tomlkit==0.13.3 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}$' '{}' + trim trailing whitespace.................................................Passed Tabs remover.............................................................Passed autopep8.................................................................Passed perltidy.................................................................Passed pre-commit: commands[3] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run gitlint-ci --hook-stage manual [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. [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. [INFO] Installing environment for https://github.com/jorisroovers/gitlint. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... gitlint..................................................................Passed ------------------------------------ Your code has been rated at 10.00/10 pre-commit: OK ✔ in 56.41 seconds pylint: OK ✔ in 30.49 seconds buildcontroller: OK ✔ in 1 minute 54.22 seconds 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 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 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 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 build_karaf_tests190: freeze> python -m pip freeze --all build_karaf_tests71: freeze> python -m pip freeze --all build_karaf_tests121: freeze> python -m pip freeze --all build_karaf_tests221: freeze> python -m pip freeze --all build_karaf_tests190: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 build_karaf_tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh build karaf in karafoc with ./karafoc.env build_karaf_tests121: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 build_karaf_tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh build_karaf_tests71: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh build karaf in karaf121 with ./karaf121.env build karaf in karaf71 with ./karaf71.env build_karaf_tests221: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh build karaf in karaf221 with ./karaf221.env build_karaf_tests190: OK ✔ in 1 minute 10.08 seconds 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 build_karaf_tests221: OK ✔ in 1 minute 14.51 seconds build_karaf_tests121: OK ✔ in 1 minute 14.59 seconds 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 build_karaf_tests71: OK ✔ in 1 minute 16.06 seconds 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 buildlighty: freeze> python -m pip freeze --all buildlighty: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh sims: freeze> python -m pip freeze --all sims: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 sims: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_lightynode.sh Using lighynode version 20.1.0.5 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory sims: OK ✔ in 12.76 seconds buildlighty: OK ✔ in 36.28 seconds testsPCE: freeze> python -m pip freeze --all testsPCE: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,click==8.2.1,contourpy==1.3.3,cryptography==3.3.2,cycler==0.12.1,dict2xml==1.7.7,Flask==2.1.3,Flask-Injector==0.14.0,fonttools==4.59.2,gnpy4tpce==2.4.7,idna==3.10,iniconfig==2.1.0,injector==0.22.0,invoke==2.2.0,itsdangerous==2.2.0,Jinja2==3.1.6,kiwisolver==1.4.9,lxml==6.0.1,MarkupSafe==3.0.2,matplotlib==3.10.6,netconf-client==3.5.0,networkx==2.8.8,numpy==1.26.4,packaging==25.0,pandas==1.5.3,paramiko==4.0.0,pbr==5.11.1,pillow==11.3.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pyparsing==3.2.3,pytest==8.4.2,python-dateutil==2.9.0.post0,pytz==2025.2,requests==2.32.5,scipy==1.16.2,setuptools==50.3.2,six==1.17.0,urllib3==2.5.0,Werkzeug==2.0.3,xlrd==1.2.0 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce pytest -q transportpce_tests/pce/test01_pce.py .................... [100%] 20 passed in 109.87s (0:01:49) pytest -q transportpce_tests/pce/test02_pce_400G.py ............ [100%] 12 passed in 46.07s pytest -q transportpce_tests/pce/test03_gnpy.py ........ [100%] 8 passed in 37.21s pytest -q transportpce_tests/pce/test04_pce_bug_fix.py ... [100%] 3 passed in 36.28s testsPCE: OK ✔ in 4 minutes 48.44 seconds 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 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 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 tests_tapi: freeze> python -m pip freeze --all tests190: freeze> python -m pip freeze --all tests121: freeze> python -m pip freeze --all tests_tapi: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi using environment variables from ./karaf221.env pytest -q transportpce_tests/tapi/test01_abstracted_topology.py tests190: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh oc using environment variables from ./karafoc.env pytest -q transportpce_tests/oc/test01_portmapping.py tests121: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 using environment variables from ./karaf121.env pytest -q transportpce_tests/1.2.1/test01_portmapping.py ........... [100%] 10 passed in 78.91s (0:01:18) pytest -q transportpce_tests/oc/test02_topology.py ........................... [100%] 21 passed in 124.65s (0:02:04) pytest -q transportpce_tests/1.2.1/test02_topo_portmapping.py .......... [100%] 6 passed in 45.01s pytest -q transportpce_tests/1.2.1/test03_topology.py ........................................F........ [100%] 44 passed in 136.85s (0:02:16) pytest -q transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py ..... [100%] 14 passed in 245.42s (0:04:05) pytest -q transportpce_tests/oc/test03_renderer.py .................................. [100%] 19 passed in 53.95s tests190: OK ✔ in 6 minutes 26.68 seconds 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 ....tests71: freeze> python -m pip freeze --all tests71: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 using environment variables from ./karaf71.env pytest -q transportpce_tests/7.1/test01_portmapping.py ..... [100%] 24 passed in 90.80s (0:01:30) pytest -q transportpce_tests/1.2.1/test05_olm.py ............ [100%] 12 passed in 53.52s pytest -q transportpce_tests/7.1/test02_otn_renderer.py ................................................................................................... [100%] 62 passed in 164.38s (0:02:44) pytest -q transportpce_tests/7.1/test03_renderer_or_modes.py ..........FFFFF.FFFF...FFFFFFFF............F...........FFFFFFFFFF..F...................... [100%] 48 passed in 134.39s (0:02:14) pytest -q transportpce_tests/7.1/test04_renderer_regen_mode.py .......... [100%] 40 passed in 377.32s (0:06:17) pytest -q transportpce_tests/1.2.1/test06_end2end.py [100%] =================================== FAILURES =================================== _________ TestTransportPCEAbstractedTopology.test_04_check_tapi_topos __________ self = def test_04_check_tapi_topos(self): self.tapi_topo["topology-id"] = test_utils.T100GE_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) self.assertEqual(response['status_code'], requests.codes.ok) self.assertEqual(len(response["output"]["topology"]["node"]), 1, 'Topology should contain 1 node') self.assertNotIn("link", response["output"]["topology"], 'Topology should contain no link') self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) self.assertEqual(response['status_code'], requests.codes.ok) > self.assertEqual(len(response["output"]["topology"]["node"]), 1, 'Topology should contain 1 node') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E KeyError: 'node' transportpce_tests/tapi/test01_abstracted_topology.py:221: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_04_check_tapi_topos _________ TestTransportPCEAbstractedTopology.test_10_check_tapi_topos __________ self = def test_10_check_tapi_topos(self): self.test_01_get_tapi_topology_T100G() self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) self.assertEqual(response['status_code'], requests.codes.ok) > self.assertEqual(1, len(response["output"]["topology"]["node"]), 'Topology should contain 1 node') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E KeyError: 'node' transportpce_tests/tapi/test01_abstracted_topology.py:254: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_10_check_tapi_topos __ TestTransportPCEAbstractedTopology.test_11_connect_xpdra_n1_to_roadma_pp1 ___ self = def test_11_connect_xpdra_n1_to_roadma_pp1(self): response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-xpdr-rdm-links', {'links-input': {'xpdr-node': 'XPDR-A1', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 204 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:275: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_11_connect_xpdra_n1_to_roadma_pp1 __ TestTransportPCEAbstractedTopology.test_12_connect_roadma_pp1_to_xpdra_n1 ___ self = def test_12_connect_roadma_pp1_to_xpdra_n1(self): response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-rdm-xpdr-links', {'links-input': {'xpdr-node': 'XPDR-A1', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 204 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:285: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_12_connect_roadma_pp1_to_xpdra_n1 _____ TestTransportPCEAbstractedTopology.test_13_check_tapi_topology_T100G _____ self = def test_13_check_tapi_topology_T100G(self): self.tapi_topo["topology-id"] = test_utils.T100GE_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) self.assertEqual(response['status_code'], requests.codes.ok) > self.assertEqual(1, len(response["output"]["topology"]["node"][0]["owned-node-edge-point"]), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 'Node should contain 1 owned-node-edge-points') E KeyError: 'owned-node-edge-point' transportpce_tests/tapi/test01_abstracted_topology.py:295: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_13_check_tapi_topology_T100G ______ TestTransportPCEAbstractedTopology.test_14_check_tapi_topology_T0 _______ self = def test_14_check_tapi_topology_T0(self): self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) self.assertEqual(response['status_code'], requests.codes.ok) > nodes = response["output"]["topology"]["node"] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E KeyError: 'node' transportpce_tests/tapi/test01_abstracted_topology.py:306: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_14_check_tapi_topology_T0 __ TestTransportPCEAbstractedTopology.test_16_connect_xpdrc_n1_to_roadmc_pp1 ___ self = def test_16_connect_xpdrc_n1_to_roadmc_pp1(self): response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-xpdr-rdm-links', {'links-input': {'xpdr-node': 'XPDR-C1', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 204 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:326: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_16_connect_xpdrc_n1_to_roadmc_pp1 __ TestTransportPCEAbstractedTopology.test_17_connect_roadmc_pp1_to_xpdrc_n1 ___ self = def test_17_connect_roadmc_pp1_to_xpdrc_n1(self): response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-rdm-xpdr-links', {'links-input': {'xpdr-node': 'XPDR-C1', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 204 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:336: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_17_connect_roadmc_pp1_to_xpdrc_n1 _____ TestTransportPCEAbstractedTopology.test_18_check_tapi_topology_T100G _____ self = def test_18_check_tapi_topology_T100G(self): self.tapi_topo["topology-id"] = test_utils.T100GE_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) self.assertEqual(response['status_code'], requests.codes.ok) > self.assertEqual(2, len(response["output"]["topology"]["node"][0]["owned-node-edge-point"]), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 'Node should contain 2 owned-node-edge-points') E KeyError: 'owned-node-edge-point' transportpce_tests/tapi/test01_abstracted_topology.py:346: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_18_check_tapi_topology_T100G ______ TestTransportPCEAbstractedTopology.test_19_check_tapi_topology_T0 _______ self = def test_19_check_tapi_topology_T0(self): self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) self.assertEqual(response['status_code'], requests.codes.ok) > nodes = response["output"]["topology"]["node"] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E KeyError: 'node' transportpce_tests/tapi/test01_abstracted_topology.py:360: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_19_check_tapi_topology_T0 _____ TestTransportPCEAbstractedTopology.test_22_check_tapi_topology_T100G _____ self = def test_22_check_tapi_topology_T100G(self): > self.test_18_check_tapi_topology_T100G() transportpce_tests/tapi/test01_abstracted_topology.py:382: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def test_18_check_tapi_topology_T100G(self): self.tapi_topo["topology-id"] = test_utils.T100GE_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) self.assertEqual(response['status_code'], requests.codes.ok) > self.assertEqual(2, len(response["output"]["topology"]["node"][0]["owned-node-edge-point"]), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 'Node should contain 2 owned-node-edge-points') E KeyError: 'owned-node-edge-point' transportpce_tests/tapi/test01_abstracted_topology.py:346: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_22_check_tapi_topology_T100G ______ TestTransportPCEAbstractedTopology.test_23_check_tapi_topology_T0 _______ self = def test_23_check_tapi_topology_T0(self): > self.test_19_check_tapi_topology_T0() transportpce_tests/tapi/test01_abstracted_topology.py:385: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def test_19_check_tapi_topology_T0(self): self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) self.assertEqual(response['status_code'], requests.codes.ok) > nodes = response["output"]["topology"]["node"] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E KeyError: 'node' transportpce_tests/tapi/test01_abstracted_topology.py:360: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_23_check_tapi_topology_T0 __ TestTransportPCEAbstractedTopology.test_24_connect_sprda_n1_to_roadma_pp2 ___ self = def test_24_connect_sprda_n1_to_roadma_pp2(self): response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-xpdr-rdm-links', {'links-input': {'xpdr-node': 'SPDR-SA1', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP2-TXRX'}}) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 204 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:392: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_24_connect_sprda_n1_to_roadma_pp2 __ TestTransportPCEAbstractedTopology.test_25_connect_roadma_pp2_to_spdra_n1 ___ self = def test_25_connect_roadma_pp2_to_spdra_n1(self): response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-rdm-xpdr-links', {'links-input': {'xpdr-node': 'SPDR-SA1', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP2-TXRX'}}) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 204 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:402: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_25_connect_roadma_pp2_to_spdra_n1 __ TestTransportPCEAbstractedTopology.test_26_connect_sprdc_n1_to_roadmc_pp2 ___ self = def test_26_connect_sprdc_n1_to_roadmc_pp2(self): response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-xpdr-rdm-links', {'links-input': {'xpdr-node': 'SPDR-SC1', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP2-TXRX'}}) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 204 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:412: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_26_connect_sprdc_n1_to_roadmc_pp2 __ TestTransportPCEAbstractedTopology.test_27_connect_roadmc_pp2_to_spdrc_n1 ___ self = def test_27_connect_roadmc_pp2_to_spdrc_n1(self): response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-rdm-xpdr-links', {'links-input': {'xpdr-node': 'SPDR-SC1', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP2-TXRX'}}) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 204 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:422: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_27_connect_roadmc_pp2_to_spdrc_n1 _____ TestTransportPCEAbstractedTopology.test_28_check_tapi_topology_T100G _____ self = def test_28_check_tapi_topology_T100G(self): > self.test_18_check_tapi_topology_T100G() transportpce_tests/tapi/test01_abstracted_topology.py:428: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def test_18_check_tapi_topology_T100G(self): self.tapi_topo["topology-id"] = test_utils.T100GE_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) self.assertEqual(response['status_code'], requests.codes.ok) > self.assertEqual(2, len(response["output"]["topology"]["node"][0]["owned-node-edge-point"]), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 'Node should contain 2 owned-node-edge-points') E KeyError: 'owned-node-edge-point' transportpce_tests/tapi/test01_abstracted_topology.py:346: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_28_check_tapi_topology_T100G ______ TestTransportPCEAbstractedTopology.test_29_check_tapi_topology_T0 _______ self = def test_29_check_tapi_topology_T0(self): self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) self.assertEqual(response['status_code'], requests.codes.ok) > nodes = response["output"]["topology"]["node"] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E KeyError: 'node' transportpce_tests/tapi/test01_abstracted_topology.py:435: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_29_check_tapi_topology_T0 ______ TestTransportPCEAbstractedTopology.test_32_check_tapi_topology_T0 _______ self = def test_32_check_tapi_topology_T0(self): self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 500 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:489: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_32_check_tapi_topology_T0 ______ TestTransportPCEAbstractedTopology.test_34_check_tapi_topology_T0 _______ self = def test_34_check_tapi_topology_T0(self): self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 500 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:528: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_34_check_tapi_topology_T0 _ TestTransportPCEAbstractedTopology.test_35_connect_sprda_2_n2_to_roadma_pp3 __ self = def test_35_connect_sprda_2_n2_to_roadma_pp3(self): response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-xpdr-rdm-links', {'links-input': {'xpdr-node': 'SPDR-SA1', 'xpdr-num': '2', 'network-num': '2', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP3-TXRX'}}) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 204 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:554: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_35_connect_sprda_2_n2_to_roadma_pp3 _ TestTransportPCEAbstractedTopology.test_36_connect_roadma_pp3_to_spdra_2_n2 __ self = def test_36_connect_roadma_pp3_to_spdra_2_n2(self): response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-rdm-xpdr-links', {'links-input': {'xpdr-node': 'SPDR-SA1', 'xpdr-num': '2', 'network-num': '2', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP3-TXRX'}}) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 204 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:564: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_36_connect_roadma_pp3_to_spdra_2_n2 ______ TestTransportPCEAbstractedTopology.test_37_check_tapi_topology_T0 _______ self = def test_37_check_tapi_topology_T0(self): self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 500 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:573: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_37_check_tapi_topology_T0 ________ TestTransportPCEAbstractedTopology.test_38_delete_ODU4_service ________ self = def test_38_delete_ODU4_service(self): self.del_serv_input_data["service-delete-req-info"]["service-name"] = "service1-ODU4" response = test_utils.transportpce_api_rpc_request( 'org-openroadm-service', 'service-delete', self.del_serv_input_data) self.assertEqual(response['status_code'], requests.codes.ok) > self.assertIn('Renderer service delete in progress', response['output']['configuration-response-common']['response-message']) E AssertionError: 'Renderer service delete in progress' not found in "Service 'service1-ODU4' does not exist in datastore" transportpce_tests/tapi/test01_abstracted_topology.py:593: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_38_delete_ODU4_service ______ TestTransportPCEAbstractedTopology.test_39_delete_OCH_OTU4_service ______ self = def test_39_delete_OCH_OTU4_service(self): self.del_serv_input_data["service-delete-req-info"]["service-name"] = "service1-OCH-OTU4" response = test_utils.transportpce_api_rpc_request( 'org-openroadm-service', 'service-delete', self.del_serv_input_data) self.assertEqual(response['status_code'], requests.codes.ok) > self.assertIn('Renderer service delete in progress', response['output']['configuration-response-common']['response-message']) E AssertionError: 'Renderer service delete in progress' not found in "Service 'service1-OCH-OTU4' does not exist in datastore" transportpce_tests/tapi/test01_abstracted_topology.py:603: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_39_delete_OCH_OTU4_service ______ TestTransportPCEAbstractedTopology.test_40_check_tapi_topology_T0 _______ self = def test_40_check_tapi_topology_T0(self): self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 500 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:611: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_40_check_tapi_topology_T0 __ TestTransportPCEAbstractedTopology.test_41_disconnect_xponders_from_roadm ___ self = def test_41_disconnect_xponders_from_roadm(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') self.assertEqual(response['status_code'], requests.codes.ok) links = response['network'][0]['ietf-network-topology:link'] for link in links: > if link["org-openroadm-common-network:link-type"] in ('XPONDER-OUTPUT', 'XPONDER-INPUT'): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E KeyError: 'org-openroadm-common-network:link-type' transportpce_tests/tapi/test01_abstracted_topology.py:624: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_41_disconnect_xponders_from_roadm ______ TestTransportPCEAbstractedTopology.test_42_check_tapi_topology_T0 _______ self = def test_42_check_tapi_topology_T0(self): self.tapi_topo["topology-id"] = test_utils.T0_MULTILAYER_TOPO_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 500 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:633: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_42_check_tapi_topology_T0 ______ TestTransportPCEAbstractedTopology.test_43_get_tapi_topology_T100G ______ self = def test_43_get_tapi_topology_T100G(self): self.tapi_topo["topology-id"] = test_utils.T100GE_UUID response = test_utils.transportpce_api_rpc_request( 'tapi-topology', 'get-topology-details', self.tapi_topo) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 500 != 200 transportpce_tests/tapi/test01_abstracted_topology.py:647: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_43_get_tapi_topology_T100G _________ TestTransportPCEAbstractedTopology.test_46_check_tapi_topos __________ self = def test_46_check_tapi_topos(self): > self.test_01_get_tapi_topology_T100G() transportpce_tests/tapi/test01_abstracted_topology.py:662: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/tapi/test01_abstracted_topology.py:185: in test_01_get_tapi_topology_T100G self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 500 != 200 ----------------------------- Captured stdout call ----------------------------- execution of test_46_check_tapi_topos =========================== short test summary info ============================ FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_04_check_tapi_topos FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_10_check_tapi_topos FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_11_connect_xpdra_n1_to_roadma_pp1 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_12_connect_roadma_pp1_to_xpdra_n1 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_13_check_tapi_topology_T100G FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_14_check_tapi_topology_T0 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_16_connect_xpdrc_n1_to_roadmc_pp1 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_17_connect_roadmc_pp1_to_xpdrc_n1 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_18_check_tapi_topology_T100G FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_19_check_tapi_topology_T0 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_22_check_tapi_topology_T100G FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_23_check_tapi_topology_T0 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_24_connect_sprda_n1_to_roadma_pp2 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_25_connect_roadma_pp2_to_spdra_n1 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_26_connect_sprdc_n1_to_roadmc_pp2 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_27_connect_roadmc_pp2_to_spdrc_n1 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_28_check_tapi_topology_T100G FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_29_check_tapi_topology_T0 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_32_check_tapi_topology_T0 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_34_check_tapi_topology_T0 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_35_connect_sprda_2_n2_to_roadma_pp3 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_36_connect_roadma_pp3_to_spdra_2_n2 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_37_check_tapi_topology_T0 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_38_delete_ODU4_service FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_39_delete_OCH_OTU4_service FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_40_check_tapi_topology_T0 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_41_disconnect_xponders_from_roadm FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_42_check_tapi_topology_T0 FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_43_get_tapi_topology_T100G FAILED transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_46_check_tapi_topos 30 failed, 21 passed in 776.76s (0:12:56) tests_tapi: exit 1 (777.09 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi pid=7594 tests_tapi: FAIL ✖ in 13 minutes 4.54 seconds 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 ....tests221: freeze> python -m pip freeze --all tests221: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 using environment variables from ./karaf221.env pytest -q transportpce_tests/2.2.1/test01_portmapping.py ............. [100%] 22 passed in 73.56s (0:01:13) ............................................F.FFF.............................. [100%] =================================== FAILURES =================================== ______ TestTransportPCEPortmapping.test_04_rdm_portmapping_DEG1_TTP_TXRX _______ self = def test_04_rdm_portmapping_DEG1_TTP_TXRX(self): response = test_utils.get_portmapping_node_attr("ROADM-A1", "mapping", "DEG1-TTP-TXRX") > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 409 != 200 transportpce_tests/2.2.1/test01_portmapping.py:73: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_04_rdm_portmapping_DEG1_TTP_TXRX _ TestTransportPCEPortmapping.test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms _ self = def test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms(self): response = test_utils.get_portmapping_node_attr("ROADM-A1", "mapping", "DEG2-TTP-TXRX") > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 409 != 200 transportpce_tests/2.2.1/test01_portmapping.py:82: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms ______ TestTransportPCEPortmapping.test_06_rdm_portmapping_SRG1_PP3_TXRX _______ self = def test_06_rdm_portmapping_SRG1_PP3_TXRX(self): response = test_utils.get_portmapping_node_attr("ROADM-A1", "mapping", "SRG1-PP3-TXRX") > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 409 != 200 transportpce_tests/2.2.1/test01_portmapping.py:93: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_06_rdm_portmapping_SRG1_PP3_TXRX ______ TestTransportPCEPortmapping.test_07_rdm_portmapping_SRG3_PP1_TXRX _______ self = def test_07_rdm_portmapping_SRG3_PP1_TXRX(self): response = test_utils.get_portmapping_node_attr("ROADM-A1", "mapping", "SRG3-PP1-TXRX") > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 409 != 200 transportpce_tests/2.2.1/test01_portmapping.py:102: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_07_rdm_portmapping_SRG3_PP1_TXRX =========================== short test summary info ============================ FAILED transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_rdm_portmapping_DEG1_TTP_TXRX FAILED transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms FAILED transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_rdm_portmapping_SRG1_PP3_TXRX FAILED transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_rdm_portmapping_SRG3_PP1_TXRX 4 failed, 31 passed in 267.52s (0:04:27) tests71: OK ✔ in 7 minutes 14.85 seconds tests221: exit 1 (267.83 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 pid=19239 tests221: FAIL ✖ in 4 minutes 37.66 seconds 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 tests_hybrid: freeze> python -m pip freeze --all tests_hybrid: bcrypt==4.3.0,certifi==2025.8.3,cffi==2.0.0,charset-normalizer==3.4.3,cryptography==45.0.7,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,invoke==2.2.0,lxml==6.0.1,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.2,pluggy==1.6.0,psutil==7.0.0,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.0,pytest==8.4.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.5.0 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid using environment variables from ./karaf221.env pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py ....E.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] ==================================== ERRORS ==================================== _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_01_connect_xpdrA _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ sims_list = [('xpdra', '1.2.1'), ('roadma', '2.2.1'), ('roadmc', '2.2.1'), ('xpdrc', '7.1')] def start_sims(sims_list): if SIMS_TO_USE == 'None': return None if SIMS_TO_USE == 'honeynode': start_method = start_honeynode else: start_method = start_lightynode for sim in sims_list: print('starting simulator ' + sim[0] + ' in OpenROADM device version ' + sim[1] + '...') log_file = os.path.join(SIM_LOG_DIRECTORY, SIMS[sim]['logfile']) process = start_method(log_file, sim) if wait_until_log_contains(log_file, [HONEYNODE_OK_START_MSG, LIGHTYNODE_OK_START_MSG], 100): print('simulator for ' + sim[0] + ' started') else: print('simulator for ' + sim[0] + ' failed to start') shutdown_process(process) for pid in process_list: shutdown_process(pid) > sys.exit(3) E SystemExit: 3 transportpce_tests/common/test_utils.py:211: SystemExit ---------------------------- Captured stdout setup ----------------------------- starting OpenDaylight... starting KARAF (karaf221) TransportPCE build... Searching for patterns in karaf.log... Pattern found! OpenDaylight started ! starting simulator xpdra in OpenROADM device version 1.2.1... Searching for patterns in xpdra-121.log... Pattern not found after 100 seconds! simulator for xpdra failed to start _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_02_connect_xpdrC _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess ---------------------------- Captured stdout setup ----------------------------- starting OpenDaylight... starting KARAF (karaf221) TransportPCE build... Searching for patterns in karaf.log... Pattern found! OpenDaylight started ! starting simulator xpdra in OpenROADM device version 1.2.1... Searching for patterns in xpdra-121.log... Pattern not found after 100 seconds! simulator for xpdra failed to start _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_03_connect_rdmA _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_04_connect_rdmC _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_05_connect_xpdrA_N1_to_roadmA_PP1 _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_06_connect_roadmA_PP1_to_xpdrA_N1 _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_07_connect_xpdrC_N1_to_roadmC_PP1 _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_08_connect_roadmC_PP1_to_xpdrC_N1 _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_09_add_omsAttributes_ROADMA_ROADMC _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_10_add_omsAttributes_ROADMC_ROADMA _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_11_create_eth_service1 _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_12_get_eth_service1 _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_13_change_status_line_port_xpdra _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_14_check_update_portmapping _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_15_check_update_openroadm_topo _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_16_check_update_service1 _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_17_restore_status_line_port_xpdra _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_18_check_update_portmapping_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_19_check_update_openroadm_topo_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_20_check_update_service1_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_21_change_status_port_roadma_srg _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_22_check_update_portmapping _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_23_check_update_openroadm_topo _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_24_restore_status_port_roadma_srg _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_25_check_update_portmapping_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_26_check_update_openroadm_topo_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_27_check_update_service1_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_28_change_status_line_port_roadma_deg _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_29_check_update_portmapping _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_30_check_update_openroadm_topo _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_31_restore_status_line_port_roadma_srg _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_32_check_update_portmapping_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_33_check_update_openroadm_topo_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_34_check_update_service1_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_35_change_status_line_port_xpdrc _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_36_check_update_portmapping _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_37_check_update_openroadm_topo _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_38_restore_status_line_port_xpdrc _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_39_check_update_portmapping_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_40_check_update_openroadm_topo_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_41_check_update_service1_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_42_change_status_port_roadma_srg _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_43_check_update_portmapping _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_44_check_update_openroadm_topo _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_45_check_update_service1_ok _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_46_delete_eth_service1 _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_47_disconnect_xponders_from_roadm _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_48_disconnect_XPDRA _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_49_disconnect_XPDRC _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_50_disconnect_ROADMA _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_51_disconnect_ROADMC _ cls = @classmethod def setUpClass(cls): cls.processes = test_utils.start_tpce() > cls.processes = test_utils.start_sims([('xpdra', cls.NODE_VERSION_121), ('roadma', cls.NODE_VERSION_221), ('roadmc', cls.NODE_VERSION_221), ('xpdrc', cls.NODE_VERSION_71)]) transportpce_tests/hybrid/test01_device_change_notifications.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/common/test_utils.py:210: in start_sims shutdown_process(pid) transportpce_tests/common/test_utils.py:286: in shutdown_process for child in psutil.Process(process.pid).children(): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:317: in __init__ self._init(pid) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = psutil.Process(pid=21100, status='terminated'), pid = 21100 _ignore_nsp = False def _init(self, pid, _ignore_nsp=False): if pid is None: pid = os.getpid() else: if pid < 0: msg = f"pid must be a positive integer (got {pid})" raise ValueError(msg) try: _psplatform.cext.check_pid_range(pid) except OverflowError as err: msg = "process PID out of range" raise NoSuchProcess(pid, msg=msg) from err self._pid = pid self._name = None self._exe = None self._create_time = None self._gone = False self._pid_reused = False self._hash = None self._lock = threading.RLock() # used for caching on Windows only (on POSIX ppid may change) self._ppid = None # platform-specific modules define an _psplatform.Process # implementation class self._proc = _psplatform.Process(pid) self._last_sys_cpu_times = None self._last_proc_cpu_times = None self._exitcode = _SENTINEL self._ident = (self.pid, None) try: self._ident = self._get_ident() except AccessDenied: # This should happen on Windows only, since we use the fast # create time method. AFAIK, on all other platforms we are # able to get create time for all PIDs. pass except ZombieProcess: # Zombies can still be queried by this class (although # not always) and pids() return them so just go on. pass except NoSuchProcess: if not _ignore_nsp: msg = "process PID not found" > raise NoSuchProcess(pid, msg=msg) from None E psutil.NoSuchProcess: process PID not found (pid=21100) ../.tox/tests_hybrid/lib/python3.11/site-packages/psutil/__init__.py:363: NoSuchProcess =========================== short test summary info ============================ ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_01_connect_xpdrA ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_02_connect_xpdrC ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_03_connect_rdmA ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_04_connect_rdmC ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_05_connect_xpdrA_N1_to_roadmA_PP1 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_06_connect_roadmA_PP1_to_xpdrA_N1 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_07_connect_xpdrC_N1_to_roadmC_PP1 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_08_connect_roadmC_PP1_to_xpdrC_N1 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_09_add_omsAttributes_ROADMA_ROADMC ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_10_add_omsAttributes_ROADMC_ROADMA ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_11_create_eth_service1 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_12_get_eth_service1 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_13_change_status_line_port_xpdra ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_14_check_update_portmapping ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_15_check_update_openroadm_topo ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_16_check_update_service1 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_17_restore_status_line_port_xpdra ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_18_check_update_portmapping_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_19_check_update_openroadm_topo_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_20_check_update_service1_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_21_change_status_port_roadma_srg ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_22_check_update_portmapping ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_23_check_update_openroadm_topo ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_24_restore_status_port_roadma_srg ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_25_check_update_portmapping_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_26_check_update_openroadm_topo_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_27_check_update_service1_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_28_change_status_line_port_roadma_deg ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_29_check_update_portmapping ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_30_check_update_openroadm_topo ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_31_restore_status_line_port_roadma_srg ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_32_check_update_portmapping_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_33_check_update_openroadm_topo_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_34_check_update_service1_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_35_change_status_line_port_xpdrc ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_36_check_update_portmapping ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_37_check_update_openroadm_topo ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_38_restore_status_line_port_xpdrc ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_39_check_update_portmapping_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_40_check_update_openroadm_topo_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_41_check_update_service1_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_42_change_status_port_roadma_srg ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_43_check_update_portmapping ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_44_check_update_openroadm_topo ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_45_check_update_service1_ok ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_46_delete_eth_service1 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_47_disconnect_xponders_from_roadm ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_48_disconnect_XPDRA ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_49_disconnect_XPDRC ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_50_disconnect_ROADMA ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_51_disconnect_ROADMC 51 errors in 234.00s (0:03:54) tests_hybrid: exit 1 (234.32 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid pid=21090 ..... [100%] 54 passed in 550.10s (0:09:10) tests_hybrid: FAIL ✖ in 4 minutes 0.97 seconds buildcontroller: OK (114.22=setup[8.77]+cmd[105.45] seconds) sims: OK (12.76=setup[8.88]+cmd[3.88] seconds) build_karaf_tests121: OK (74.59=setup[8.03]+cmd[66.56] seconds) testsPCE: OK (288.44=setup[57.79]+cmd[230.65] seconds) tests121: OK (1334.13=setup[7.58]+cmd[1326.56] seconds) build_karaf_tests221: OK (74.51=setup[8.10]+cmd[66.41] seconds) tests_tapi: FAIL code 1 (784.54=setup[7.45]+cmd[777.09] seconds) tests221: FAIL code 1 (277.66=setup[9.83]+cmd[267.83] seconds) build_karaf_tests71: OK (76.06=setup[8.03]+cmd[68.03] seconds) tests71: OK (434.85=setup[7.70]+cmd[427.15] seconds) build_karaf_tests190: OK (70.07=setup[8.00]+cmd[62.07] seconds) tests190: OK (386.68=setup[7.48]+cmd[379.20] seconds) tests_hybrid: FAIL code 1 (240.97=setup[6.65]+cmd[234.32] seconds) buildlighty: OK (36.28=setup[12.41]+cmd[23.87] seconds) docs: OK (32.18=setup[29.14]+cmd[3.04] seconds) docs-linkcheck: OK (33.24=setup[29.11]+cmd[4.13] seconds) checkbashisms: OK (3.38=setup[2.08]+cmd[0.01,0.08,1.21] seconds) pre-commit: OK (56.41=setup[2.99]+cmd[0.02,0.01,42.45,10.94] seconds) pylint: OK (30.49=setup[4.38]+cmd[26.11] seconds) evaluation failed :( (1812.90 seconds)