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 docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt checkbashisms: pip==24.1,setuptools==70.1.0,wheel==0.43.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 2.53 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.3.8,filelock==3.15.4,identify==2.6.0,nodeenv==1.9.1,pip==24.1,platformdirs==4.2.2,pre-commit==3.8.0,PyYAML==6.0.2,setuptools==70.1.0,virtualenv==20.26.3,wheel==0.43.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 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. [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.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.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.12.0-openjdk-amd64 1211 /usr/lib/jvm/java-1.12.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 java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. [INFO] Initializing environment for https://github.com/perltidy/perltidy. [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... 21 21 ok, java is 21 or newer Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256) Maven home: /opt/maven Java version: 21.0.4, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 Default locale: en, platform encoding: UTF-8 OS name: "linux", version: "5.4.0-190-generic", arch: "amd64", family: "unix" [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... [INFO] Installing environment for https://github.com/perltidy/perltidy. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... trim trailing whitespace.................................................docs-linkcheck: freeze> python -m pip freeze --all docs: freeze> python -m pip freeze --all Passed Tabs remover.............................................................Passed autopep8.................................................................docs: alabaster==0.7.16,attrs==24.2.0,babel==2.16.0,blockdiag==3.0.0,certifi==2024.8.30,charset-normalizer==3.3.2,contourpy==1.3.0,cycler==0.12.1,docutils==0.20.1,fonttools==4.53.1,funcparserlib==2.0.0a0,future==1.0.0,idna==3.8,imagesize==1.4.1,Jinja2==3.1.4,jsonschema==3.2.0,kiwisolver==1.4.5,lfdocs-conf==0.9.0,MarkupSafe==2.1.5,matplotlib==3.9.2,numpy==2.1.0,nwdiag==3.0.0,packaging==24.1,pillow==10.4.0,pip==24.1,Pygments==2.18.0,pyparsing==3.1.4,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.3,requests-file==1.5.1,seqdiag==3.0.0,setuptools==70.1.0,six==1.16.0,snowballstemmer==2.2.0,Sphinx==7.4.7,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==2.0.0,sphinx-tabs==3.4.5,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.30,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.2.2,webcolors==24.8.0,wheel==0.43.0 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 docs-linkcheck: alabaster==0.7.16,attrs==24.2.0,babel==2.16.0,blockdiag==3.0.0,certifi==2024.8.30,charset-normalizer==3.3.2,contourpy==1.3.0,cycler==0.12.1,docutils==0.20.1,fonttools==4.53.1,funcparserlib==2.0.0a0,future==1.0.0,idna==3.8,imagesize==1.4.1,Jinja2==3.1.4,jsonschema==3.2.0,kiwisolver==1.4.5,lfdocs-conf==0.9.0,MarkupSafe==2.1.5,matplotlib==3.9.2,numpy==2.1.0,nwdiag==3.0.0,packaging==24.1,pillow==10.4.0,pip==24.1,Pygments==2.18.0,pyparsing==3.1.4,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.3,requests-file==1.5.1,seqdiag==3.0.0,setuptools==70.1.0,six==1.16.0,snowballstemmer==2.2.0,Sphinx==7.4.7,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==2.0.0,sphinx-tabs==3.4.5,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.30,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.2.2,webcolors==24.8.0,wheel==0.43.0 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: OK ✔ in 36.7 seconds pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' Passed perltidy.................................................................Passed docs-linkcheck: OK ✔ in 37.23 seconds pre-commit: commands[3] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run gitlint-ci --hook-stage manual [INFO] Installing environment for https://github.com/jorisroovers/gitlint. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... pylint: freeze> python -m pip freeze --all pylint: astroid==3.2.4,dill==0.3.8,isort==5.13.2,mccabe==0.7.0,pip==24.1,platformdirs==4.2.2,pylint==3.2.6,setuptools==70.1.0,tomlkit==0.13.2,wheel==0.43.0 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}$' '{}' + gitlint..................................................................Passed ------------------------------------ Your code has been rated at 10.00/10 pre-commit: OK ✔ in 44.19 seconds pylint: OK ✔ in 26.03 seconds buildcontroller: OK ✔ in 2 minutes 9.25 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 sims121: 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 sims221: 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 sims221: freeze> python -m pip freeze --all sims121: freeze> python -m pip freeze --all build_karaf_tests121: freeze> python -m pip freeze --all sims221: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.0 sims221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_sims.sh 2.2.1 sims121: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.0 sims121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_sims.sh 1.2.1 Using lighynode version 19.1.0.5 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory Using lighynode version 19.1.0.5 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory build_karaf_tests121: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.0 build_karaf_tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh sims221: OK ✔ in 19.34 seconds sims121: OK ✔ in 19.52 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 sims71: 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 sims71: freeze> python -m pip freeze --all build_karaf_tests221: freeze> python -m pip freeze --all sims71: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.0 sims71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_sims.sh 7.1 Using lighynode version 19.1.0.5 Removing ./lightynode/lightynode-openroadm-device directory Installing lightynode device to ./lightynode/lightynode-openroadm-device directory build_karaf_tests221: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.0 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh sims71: OK ✔ in 24.67 seconds 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_tests121: OK ✔ in 1 minute 10.9 seconds build_karaf_tests_hybrid: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt build_karaf_tests71: freeze> python -m pip freeze --all build_karaf_tests71: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.0 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh build_karaf_tests_hybrid: freeze> python -m pip freeze --all build_karaf_tests_hybrid: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.0 build_karaf_tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh build_karaf_tests221: OK ✔ in 1 minute 12.56 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 tests_tapi: freeze> python -m pip freeze --all tests_tapi: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.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 testsPCE: freeze> python -m pip freeze --all testsPCE: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,click==8.1.7,contourpy==1.3.0,cryptography==3.3.2,cycler==0.12.1,dict2xml==1.7.6,Flask==2.1.3,Flask-Injector==0.14.0,fonttools==4.53.1,gnpy4tpce==2.4.7,idna==3.8,iniconfig==2.0.0,injector==0.22.0,itsdangerous==2.2.0,Jinja2==3.1.4,kiwisolver==1.4.5,lxml==5.3.0,MarkupSafe==2.1.5,matplotlib==3.9.2,netconf-client==3.1.1,networkx==2.8.8,numpy==1.26.4,packaging==24.1,pandas==1.5.3,paramiko==3.4.1,pbr==5.11.1,pillow==10.4.0,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pyparsing==3.1.4,pytest==8.3.2,python-dateutil==2.9.0.post0,pytz==2024.1,requests==2.32.3,scipy==1.14.1,setuptools==50.3.2,six==1.16.0,urllib3==2.2.2,Werkzeug==2.0.3,wheel==0.43.0,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 117.85s (0:01:57) pytest -q transportpce_tests/pce/test02_pce_400G.py .............. [100%] 9 passed in 38.79s pytest -q transportpce_tests/pce/test03_gnpy.py ........... [100%] 8 passed in 38.47s pytest -q transportpce_tests/pce/test04_pce_bug_fix.py ........ [100%] 3 passed in 35.71s build_karaf_tests71: OK ✔ in 1 minute 26.58 seconds build_karaf_tests_hybrid: OK ✔ in 1 minute 2.13 seconds testsPCE: OK ✔ in 5 minutes 50.13 seconds 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 tests121: freeze> python -m pip freeze --all tests121: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.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%] 50 passed in 390.47s (0:06:30) pytest -q transportpce_tests/tapi/test02_full_topology.py ................................... [100%] 21 passed in 256.03s (0:04:16) pytest -q transportpce_tests/1.2.1/test02_topo_portmapping.py ................ [100%] 30 passed in 262.67s (0:04:22) pytest -q transportpce_tests/tapi/test03_tapi_device_change_notifications.py ............. [100%] 6 passed in 217.71s (0:03:37) pytest -q transportpce_tests/1.2.1/test03_topology.py ............................................................... [100%] 70 passed in 261.45s (0:04:21) tests_tapi: OK ✔ in 15 minutes 34.38 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.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.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%] 12 passed in 43.50s pytest -q transportpce_tests/7.1/test02_otn_renderer.py .............................................................. [100%] 62 passed in 153.36s (0:02:33) pytest -q transportpce_tests/7.1/test03_renderer_or_modes.py ........................................................ [100%] 48 passed in 132.68s (0:02:12) pytest -q transportpce_tests/7.1/test04_renderer_regen_mode.py ...................... [100%] 22 passed in 70.00s (0:01:09) tests71: OK ✔ in 6 minutes 47.49 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.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.1,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==70.1.0,urllib3==2.2.2,wheel==0.43.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%] 44 passed in 666.37s (0:11:06) pytest -q transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py ............. [100%] 35 passed in 72.89s (0:01:12) pytest -q transportpce_tests/2.2.1/test02_topo_portmapping.py ...... [100%] 6 passed in 49.63s pytest -q transportpce_tests/2.2.1/test03_topology.py ............................................ [100%] 44 passed in 132.09s (0:02:12) pytest -q transportpce_tests/2.2.1/test04_otn_topology.py ................................... [100%] 12 passed in 59.22s pytest -q transportpce_tests/2.2.1/test05_flex_grid.py . [100%] 24 passed in 261.47s (0:04:21) pytest -q transportpce_tests/1.2.1/test05_olm.py ........................................ [100%] 16 passed in 124.90s (0:02:04) pytest -q transportpce_tests/2.2.1/test06_renderer_service_path_nominal.py ....................................... [100%] 31 passed in 36.99s pytest -q transportpce_tests/2.2.1/test07_otn_renderer.py ........ [100%] 40 passed in 191.44s (0:03:11) pytest -q transportpce_tests/1.2.1/test06_end2end.py .................................... [100%] 26 passed in 95.09s (0:01:35) pytest -q transportpce_tests/2.2.1/test08_otn_sh_renderer.py .......................................... [100%] 22 passed in 101.30s (0:01:41) pytest -q transportpce_tests/2.2.1/test09_olm.py .......................................................... [100%] 40 passed in 181.24s (0:03:01) pytest -q transportpce_tests/2.2.1/test11_otn_end2end.py .............................................. [100%] 54 passed in 532.59s (0:08:52) ................................ [ 74%] ......................... [100%] 97 passed in 487.76s (0:08:07) pytest -q transportpce_tests/2.2.1/test12_end2end.py ...................................................... [100%] 54 passed in 623.40s (0:10:23) pytest -q transportpce_tests/2.2.1/test14_otn_switch_end2end.py ........................................................................ [ 71%] ............................. [100%] 101 passed in 487.77s (0:08:07) pytest -q transportpce_tests/2.2.1/test15_otn_end2end_with_intermediate_switch.py ........................................................................ [ 67%] ................................... [100%] 107 passed in 951.13s (0:15:51) tests121: OK ✔ in 35 minutes 33.78 seconds tests221: OK ✔ in 56 minutes 53.2 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.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.2,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==72.1.0,urllib3==2.2.2,wheel==0.43.0 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid using environment variables from ./karaf121.env pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py FFFFFFFFFFFF.FFF.FFF.FF.FFF.FF.FFF.FF.FFF.FFFFFFFFF [100%] =================================== FAILURES =================================== ________________ TransportPCEFulltesting.test_01_connect_xpdrA _________________ self = def test_01_connect_xpdrA(self): response = test_utils.mount_device("XPDRA01", ('xpdra', self.NODE_VERSION_121)) > self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201) E AssertionError: 401 != 201 : Http status code should be 201 transportpce_tests/hybrid/test01_device_change_notifications.py:97: AssertionError ---------------------------- Captured stdout setup ----------------------------- starting OpenDaylight... starting KARAF TransportPCE build... Searching for pattern 'Transportpce controller started' in karaf.log... Pattern found! OpenDaylight started ! starting simulator xpdra in OpenROADM device version 1.2.1... Searching for pattern 'Data tree change listeners registered' in xpdra-121.log... Pattern found! simulator for xpdra started starting simulator roadma in OpenROADM device version 2.2.1... Searching for pattern 'Data tree change listeners registered' in roadma-221.log... Pattern found! simulator for roadma started starting simulator roadmc in OpenROADM device version 2.2.1... Searching for pattern 'Data tree change listeners registered' in roadmc-221.log... Pattern found! simulator for roadmc started starting simulator xpdrc in OpenROADM device version 7.1... Searching for pattern 'Data tree change listeners registered' in xpdrc-71.log... Pattern found! simulator for xpdrc started ----------------------------- Captured stdout call ----------------------------- execution of test_01_connect_xpdrA Searching for pattern 'Triggering notification stream NETCONF for node XPDRA01' in karaf.log... Pattern not found after 180 seconds! Node XPDRA01 still not added to tpce topology... ________________ TransportPCEFulltesting.test_02_connect_xpdrC _________________ self = def test_02_connect_xpdrC(self): response = test_utils.mount_device("XPDR-C1", ('xpdrc', self.NODE_VERSION_71)) > self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201) E AssertionError: 401 != 201 : Http status code should be 201 transportpce_tests/hybrid/test01_device_change_notifications.py:102: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_02_connect_xpdrC Searching for pattern 'Triggering notification stream NETCONF for node XPDR-C1' in karaf.log... Pattern not found after 180 seconds! Node XPDR-C1 still not added to tpce topology... _________________ TransportPCEFulltesting.test_03_connect_rdmA _________________ self = def test_03_connect_rdmA(self): response = test_utils.mount_device("ROADM-A1", ('roadma', self.NODE_VERSION_221)) > self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201) E AssertionError: 401 != 201 : Http status code should be 201 transportpce_tests/hybrid/test01_device_change_notifications.py:107: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_03_connect_rdmA Searching for pattern 'Triggering notification stream NETCONF for node ROADM-A1' in karaf.log... Pattern not found after 180 seconds! Node ROADM-A1 still not added to tpce topology... _________________ TransportPCEFulltesting.test_04_connect_rdmC _________________ self = def test_04_connect_rdmC(self): response = test_utils.mount_device("ROADM-C1", ('roadmc', self.NODE_VERSION_221)) > self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201) E AssertionError: 401 != 201 : Http status code should be 201 transportpce_tests/hybrid/test01_device_change_notifications.py:112: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_04_connect_rdmC Searching for pattern 'Triggering notification stream NETCONF for node ROADM-C1' in karaf.log... Pattern not found after 180 seconds! Node ROADM-C1 still not added to tpce topology... ________ TransportPCEFulltesting.test_05_connect_xpdrA_N1_to_roadmA_PP1 ________ self = def test_05_connect_xpdrA_N1_to_roadmA_PP1(self): > response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-xpdr-rdm-links', {'links-input': {'xpdr-node': 'XPDRA01', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) transportpce_tests/hybrid/test01_device_change_notifications.py:116: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-networkutils', rpc = 'init-xpdr-rdm-links' payload = {'links-input': {'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX', ...}} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'transportpce-networkutils:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_05_connect_xpdrA_N1_to_roadmA_PP1 ________ TransportPCEFulltesting.test_06_connect_roadmA_PP1_to_xpdrA_N1 ________ self = def test_06_connect_roadmA_PP1_to_xpdrA_N1(self): > response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-rdm-xpdr-links', {'links-input': {'xpdr-node': 'XPDRA01', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) transportpce_tests/hybrid/test01_device_change_notifications.py:124: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-networkutils', rpc = 'init-rdm-xpdr-links' payload = {'links-input': {'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX', ...}} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'transportpce-networkutils:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_06_connect_roadmA_PP1_to_xpdrA_N1 ________ TransportPCEFulltesting.test_07_connect_xpdrC_N1_to_roadmC_PP1 ________ self = def test_07_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'}}) transportpce_tests/hybrid/test01_device_change_notifications.py:132: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-networkutils', rpc = 'init-xpdr-rdm-links' payload = {'links-input': {'network-num': '1', 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX', ...}} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'transportpce-networkutils:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_07_connect_xpdrC_N1_to_roadmC_PP1 ________ TransportPCEFulltesting.test_08_connect_roadmC_PP1_to_xpdrC_N1 ________ self = def test_08_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'}}) transportpce_tests/hybrid/test01_device_change_notifications.py:140: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-networkutils', rpc = 'init-rdm-xpdr-links' payload = {'links-input': {'network-num': '1', 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX', ...}} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'transportpce-networkutils:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_08_connect_roadmC_PP1_to_xpdrC_N1 _______ TransportPCEFulltesting.test_09_add_omsAttributes_ROADMA_ROADMC ________ self = def test_09_add_omsAttributes_ROADMA_ROADMC(self): # Config ROADMA-ROADMC oms-attributes data = {"span": { "auto-spanloss": "true", "spanloss-base": 11.4, "spanloss-current": 12, "engineered-spanloss": 12.2, "link-concatenation": [{ "SRLG-Id": 0, "fiber-type": "smf", "SRLG-length": 100000, "pmd": 0.5}]}} response = test_utils.add_oms_attr_request( "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX", data) > self.assertEqual(response.status_code, requests.codes.created) E AssertionError: 401 != 201 transportpce_tests/hybrid/test01_device_change_notifications.py:161: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_09_add_omsAttributes_ROADMA_ROADMC _______ TransportPCEFulltesting.test_10_add_omsAttributes_ROADMC_ROADMA ________ self = def test_10_add_omsAttributes_ROADMC_ROADMA(self): # Config ROADMC-ROADMA oms-attributes data = {"span": { "auto-spanloss": "true", "spanloss-base": 11.4, "spanloss-current": 12, "engineered-spanloss": 12.2, "link-concatenation": [{ "SRLG-Id": 0, "fiber-type": "smf", "SRLG-length": 100000, "pmd": 0.5}]}} response = test_utils.add_oms_attr_request( "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX", data) > self.assertEqual(response.status_code, requests.codes.created) E AssertionError: 401 != 201 transportpce_tests/hybrid/test01_device_change_notifications.py:177: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_10_add_omsAttributes_ROADMC_ROADMA _____________ TransportPCEFulltesting.test_11_create_eth_service1 ______________ self = def test_11_create_eth_service1(self): > response = test_utils.transportpce_api_rpc_request( 'org-openroadm-service', 'service-create', self.cr_serv_input_data) transportpce_tests/hybrid/test01_device_change_notifications.py:181: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'org-openroadm-service', rpc = 'service-create' payload = {'common-id': 'ASATT1234567', 'connection-type': 'service', 'due-date': '2016-11-28T00:00:01Z', 'operator-contact': 'pw1234', ...} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'org-openroadm-service:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_11_create_eth_service1 _______________ TransportPCEFulltesting.test_12_get_eth_service1 _______________ self = def test_12_get_eth_service1(self): > response = test_utils.get_ordm_serv_list_attr_request( "services", "service1") transportpce_tests/hybrid/test01_device_change_notifications.py:190: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_12_get_eth_service1 ___________ TransportPCEFulltesting.test_14_check_update_portmapping ___________ self = def test_14_check_update_portmapping(self): > response = test_utils.get_portmapping_node_attr("XPDRA01", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:212: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDRA01', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_14_check_update_portmapping _________ TransportPCEFulltesting.test_15_check_update_openroadm_topo __________ self = def test_15_check_update_openroadm_topo(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:230: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_15_check_update_openroadm_topo ____________ TransportPCEFulltesting.test_16_check_update_service1 _____________ self = def test_16_check_update_service1(self): > response = test_utils.get_ordm_serv_list_attr_request("services", "service1") transportpce_tests/hybrid/test01_device_change_notifications.py:263: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_16_check_update_service1 _________ TransportPCEFulltesting.test_18_check_update_portmapping_ok __________ self = def test_18_check_update_portmapping_ok(self): > response = test_utils.get_portmapping_node_attr("XPDRA01", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:282: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDRA01', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_18_check_update_portmapping_ok ________ TransportPCEFulltesting.test_19_check_update_openroadm_topo_ok ________ self = def test_19_check_update_openroadm_topo_ok(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:294: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_19_check_update_openroadm_topo_ok ___________ TransportPCEFulltesting.test_20_check_update_service1_ok ___________ self = def test_20_check_update_service1_ok(self): > self.test_12_get_eth_service1() transportpce_tests/hybrid/test01_device_change_notifications.py:311: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:190: in test_12_get_eth_service1 response = test_utils.get_ordm_serv_list_attr_request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_20_check_update_service1_ok ___________ TransportPCEFulltesting.test_22_check_update_portmapping ___________ self = def test_22_check_update_portmapping(self): > response = test_utils.get_portmapping_node_attr("ROADM-A1", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:326: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'ROADM-A1', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_22_check_update_portmapping _________ TransportPCEFulltesting.test_23_check_update_openroadm_topo __________ self = def test_23_check_update_openroadm_topo(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:344: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_23_check_update_openroadm_topo _________ TransportPCEFulltesting.test_25_check_update_portmapping_ok __________ self = def test_25_check_update_portmapping_ok(self): > self.test_18_check_update_portmapping_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:389: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:282: in test_18_check_update_portmapping_ok response = test_utils.get_portmapping_node_attr("XPDRA01", None, None) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDRA01', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_25_check_update_portmapping_ok ________ TransportPCEFulltesting.test_26_check_update_openroadm_topo_ok ________ self = def test_26_check_update_openroadm_topo_ok(self): > self.test_19_check_update_openroadm_topo_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:392: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:294: in test_19_check_update_openroadm_topo_ok self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 ----------------------------- Captured stdout call ----------------------------- execution of test_26_check_update_openroadm_topo_ok ___________ TransportPCEFulltesting.test_27_check_update_service1_ok ___________ self = def test_27_check_update_service1_ok(self): > self.test_12_get_eth_service1() transportpce_tests/hybrid/test01_device_change_notifications.py:395: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:190: in test_12_get_eth_service1 response = test_utils.get_ordm_serv_list_attr_request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_27_check_update_service1_ok ___________ TransportPCEFulltesting.test_29_check_update_portmapping ___________ self = def test_29_check_update_portmapping(self): > response = test_utils.get_portmapping_node_attr("ROADM-A1", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:410: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'ROADM-A1', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_29_check_update_portmapping _________ TransportPCEFulltesting.test_30_check_update_openroadm_topo __________ self = def test_30_check_update_openroadm_topo(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:428: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_30_check_update_openroadm_topo _________ TransportPCEFulltesting.test_32_check_update_portmapping_ok __________ self = def test_32_check_update_portmapping_ok(self): > self.test_18_check_update_portmapping_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:282: in test_18_check_update_portmapping_ok response = test_utils.get_portmapping_node_attr("XPDRA01", None, None) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDRA01', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_32_check_update_portmapping_ok ________ TransportPCEFulltesting.test_33_check_update_openroadm_topo_ok ________ self = def test_33_check_update_openroadm_topo_ok(self): > self.test_19_check_update_openroadm_topo_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:476: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:294: in test_19_check_update_openroadm_topo_ok self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 ----------------------------- Captured stdout call ----------------------------- execution of test_33_check_update_openroadm_topo_ok ___________ TransportPCEFulltesting.test_34_check_update_service1_ok ___________ self = def test_34_check_update_service1_ok(self): > self.test_12_get_eth_service1() transportpce_tests/hybrid/test01_device_change_notifications.py:479: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:190: in test_12_get_eth_service1 response = test_utils.get_ordm_serv_list_attr_request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_34_check_update_service1_ok ___________ TransportPCEFulltesting.test_36_check_update_portmapping ___________ self = def test_36_check_update_portmapping(self): > response = test_utils.get_portmapping_node_attr("XPDR-C1", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:492: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDR-C1', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_36_check_update_portmapping _________ TransportPCEFulltesting.test_37_check_update_openroadm_topo __________ self = def test_37_check_update_openroadm_topo(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:510: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_37_check_update_openroadm_topo _________ TransportPCEFulltesting.test_39_check_update_portmapping_ok __________ self = def test_39_check_update_portmapping_ok(self): > self.test_18_check_update_portmapping_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:553: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:282: in test_18_check_update_portmapping_ok response = test_utils.get_portmapping_node_attr("XPDRA01", None, None) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDRA01', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_39_check_update_portmapping_ok ________ TransportPCEFulltesting.test_40_check_update_openroadm_topo_ok ________ self = def test_40_check_update_openroadm_topo_ok(self): > self.test_19_check_update_openroadm_topo_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:556: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:294: in test_19_check_update_openroadm_topo_ok self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 ----------------------------- Captured stdout call ----------------------------- execution of test_40_check_update_openroadm_topo_ok ___________ TransportPCEFulltesting.test_41_check_update_service1_ok ___________ self = def test_41_check_update_service1_ok(self): > self.test_12_get_eth_service1() transportpce_tests/hybrid/test01_device_change_notifications.py:559: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:190: in test_12_get_eth_service1 response = test_utils.get_ordm_serv_list_attr_request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_41_check_update_service1_ok ___________ TransportPCEFulltesting.test_43_check_update_portmapping ___________ self = def test_43_check_update_portmapping(self): > response = test_utils.get_portmapping_node_attr("ROADM-A1", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'ROADM-A1', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_43_check_update_portmapping _________ TransportPCEFulltesting.test_44_check_update_openroadm_topo __________ self = def test_44_check_update_openroadm_topo(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:592: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_44_check_update_openroadm_topo ___________ TransportPCEFulltesting.test_45_check_update_service1_ok ___________ self = def test_45_check_update_service1_ok(self): > self.test_12_get_eth_service1() transportpce_tests/hybrid/test01_device_change_notifications.py:618: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:190: in test_12_get_eth_service1 response = test_utils.get_ordm_serv_list_attr_request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_45_check_update_service1_ok _____________ TransportPCEFulltesting.test_46_delete_eth_service1 ______________ self = def test_46_delete_eth_service1(self): self.del_serv_input_data["service-delete-req-info"]["service-name"] = "service1" > response = test_utils.transportpce_api_rpc_request( 'org-openroadm-service', 'service-delete', self.del_serv_input_data) transportpce_tests/hybrid/test01_device_change_notifications.py:622: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'org-openroadm-service', rpc = 'service-delete' payload = {'sdnc-request-header': {'notification-url': 'http://localhost:8585/NotificationServer/notify', 'request-id': 'e3028ba...ame', 'rpc-action': 'service-delete'}, 'service-delete-req-info': {'service-name': 'service1', 'tail-retention': 'no'}} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'org-openroadm-service:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_46_delete_eth_service1 ________ TransportPCEFulltesting.test_47_disconnect_xponders_from_roadm ________ self = def test_47_disconnect_xponders_from_roadm(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:632: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_47_disconnect_xponders_from_roadm _______________ TransportPCEFulltesting.test_48_disconnect_XPDRA _______________ self = def test_48_disconnect_XPDRA(self): response = test_utils.unmount_device("XPDRA01") > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/hybrid/test01_device_change_notifications.py:642: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_48_disconnect_XPDRA Searching for pattern 'onDeviceDisConnected:\ XPDRA01' in karaf.log... Pattern not found after 180 seconds! Node XPDRA01 still not deleted from tpce topology... _______________ TransportPCEFulltesting.test_49_disconnect_XPDRC _______________ self = def test_49_disconnect_XPDRC(self): response = test_utils.unmount_device("XPDR-C1") > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/hybrid/test01_device_change_notifications.py:646: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_49_disconnect_XPDRC Searching for pattern 'onDeviceDisConnected:\ XPDR\-C1' in karaf.log... Pattern not found after 180 seconds! Node XPDR-C1 still not deleted from tpce topology... ______________ TransportPCEFulltesting.test_50_disconnect_ROADMA _______________ self = def test_50_disconnect_ROADMA(self): response = test_utils.unmount_device("ROADM-A1") > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/hybrid/test01_device_change_notifications.py:650: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_50_disconnect_ROADMA Searching for pattern 'onDeviceDisConnected:\ ROADM\-A1' in karaf.log... Pattern not found after 180 seconds! Node ROADM-A1 still not deleted from tpce topology... ______________ TransportPCEFulltesting.test_51_disconnect_ROADMC _______________ self = def test_51_disconnect_ROADMC(self): response = test_utils.unmount_device("ROADM-C1") > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/hybrid/test01_device_change_notifications.py:654: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_51_disconnect_ROADMC Searching for pattern 'onDeviceDisConnected:\ ROADM\-C1' in karaf.log... Pattern not found after 180 seconds! Node ROADM-C1 still not deleted from tpce topology... --------------------------- Captured stdout teardown --------------------------- all processes killed =========================== short test summary info ============================ FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_01_connect_xpdrA FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_02_connect_xpdrC FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_03_connect_rdmA FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_04_connect_rdmC FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_05_connect_xpdrA_N1_to_roadmA_PP1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_06_connect_roadmA_PP1_to_xpdrA_N1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_07_connect_xpdrC_N1_to_roadmC_PP1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_08_connect_roadmC_PP1_to_xpdrC_N1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_09_add_omsAttributes_ROADMA_ROADMC FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_10_add_omsAttributes_ROADMC_ROADMA FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_11_create_eth_service1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_12_get_eth_service1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_14_check_update_portmapping FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_15_check_update_openroadm_topo FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_16_check_update_service1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_18_check_update_portmapping_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_19_check_update_openroadm_topo_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_20_check_update_service1_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_22_check_update_portmapping FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_23_check_update_openroadm_topo FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_25_check_update_portmapping_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_26_check_update_openroadm_topo_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_27_check_update_service1_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_29_check_update_portmapping FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_30_check_update_openroadm_topo FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_32_check_update_portmapping_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_33_check_update_openroadm_topo_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_34_check_update_service1_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_36_check_update_portmapping FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_37_check_update_openroadm_topo FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_39_check_update_portmapping_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_40_check_update_openroadm_topo_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_41_check_update_service1_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_43_check_update_portmapping FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_44_check_update_openroadm_topo FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_45_check_update_service1_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_46_delete_eth_service1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_47_disconnect_xponders_from_roadm FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_48_disconnect_XPDRA FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_49_disconnect_XPDRC FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_50_disconnect_ROADMA FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_51_disconnect_ROADMC 42 failed, 9 passed in 1504.09s (0:25:04) tests_hybrid: exit 1 (1504.33 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid pid=62293 tests_hybrid: FAIL ✖ in 25 minutes 10.44 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 buildlighty: freeze> python -m pip freeze --all buildlighty: bcrypt==4.2.0,certifi==2024.8.30,cffi==1.17.0,charset-normalizer==3.3.2,cryptography==43.0.0,dict2xml==1.7.6,idna==3.8,iniconfig==2.0.0,lxml==5.3.0,netconf-client==3.1.1,packaging==24.1,paramiko==3.4.1,pip==24.2,pluggy==1.5.0,psutil==6.0.0,pycparser==2.22,PyNaCl==1.5.0,pytest==8.3.2,requests==2.32.3,setuptools==72.1.0,urllib3==2.2.2,wheel==0.43.0 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh buildcontroller: OK (129.25=setup[7.83]+cmd[121.42] seconds) testsPCE: OK (350.13=setup[118.16]+cmd[231.97] seconds) sims121: OK (19.52=setup[15.95]+cmd[3.57] seconds) build_karaf_tests121: OK (70.90=setup[15.97]+cmd[54.93] seconds) tests121: OK (2133.78=setup[6.75]+cmd[2127.03] seconds) sims221: OK (19.34=setup[15.95]+cmd[3.39] seconds) build_karaf_tests221: OK (72.56=setup[22.44]+cmd[50.12] seconds) tests_tapi: OK (934.38=setup[19.09]+cmd[915.29] seconds) tests221: OK (3413.20=setup[6.61]+cmd[3406.59] seconds) sims71: OK (24.67=setup[22.19]+cmd[2.48] seconds) build_karaf_tests71: OK (86.58=setup[29.92]+cmd[56.66] seconds) tests71: OK (407.49=setup[7.04]+cmd[400.46] seconds) build_karaf_tests_hybrid: OK (62.13=setup[9.49]+cmd[52.64] seconds) tests_hybrid: FAIL code 1 (1510.44=setup[6.12]+cmd[1504.33] seconds) buildlighty: OK (23.39=setup[6.16]+cmd[17.23] seconds) docs: OK (36.70=setup[32.73]+cmd[3.97] seconds) docs-linkcheck: OK (37.23=setup[32.95]+cmd[4.27] seconds) checkbashisms: OK (2.53=setup[1.62]+cmd[0.02,0.06,0.83] seconds) pre-commit: OK (44.19=setup[3.64]+cmd[0.01,0.01,32.27,8.27] seconds) pylint: OK (26.03=setup[6.15]+cmd[19.88] seconds) evaluation failed :( (6510.14 seconds)