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 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 checkbashisms: pip==25.3,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.21 seconds pre-commit: install_deps> python -I -m pip install pre-commit pre-commit: freeze> python -m pip freeze --all pre-commit: cfgv==3.5.0,distlib==0.4.0,filelock==3.20.1,identify==2.6.15,nodeenv==1.9.1,pip==25.3,platformdirs==4.5.1,pre_commit==4.5.0,PyYAML==6.0.3,setuptools==80.9.0,virtualenv==20.35.4 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]. [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. [INFO] Initializing environment for https://github.com/perltidy/perltidy. buildcontroller: freeze> python -m pip freeze --all buildcontroller: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 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] 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.11 (3e54c93a704957b63ee3494413a2b544fd3d825b) Maven home: /opt/maven Java version: 21.0.9, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 Default locale: en, platform encoding: UTF-8 OS name: "linux", version: "5.15.0-161-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... docs: freeze> python -m pip freeze --all docs: alabaster==1.0.0,attrs==25.4.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.11.12,charset-normalizer==3.4.4,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.61.1,funcparserlib==2.0.0a0,future==1.0.0,idna==3.11,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.9,lfdocs-conf==0.9.0,MarkupSafe==3.0.3,matplotlib==3.10.8,numpy==2.3.5,nwdiag==3.0.0,packaging==25.0,pillow==12.0.0,pip==25.3,Pygments==2.19.2,pyparsing==3.2.5,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.3,requests==2.32.5,requests-file==1.5.1,roman-numerals==4.0.0,roman-numerals-py==4.0.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.6.2,webcolors==25.10.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: freeze> python -m pip freeze --all docs-linkcheck: alabaster==1.0.0,attrs==25.4.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.11.12,charset-normalizer==3.4.4,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.61.1,funcparserlib==2.0.0a0,future==1.0.0,idna==3.11,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.9,lfdocs-conf==0.9.0,MarkupSafe==3.0.3,matplotlib==3.10.8,numpy==2.3.5,nwdiag==3.0.0,packaging==25.0,pillow==12.0.0,pip==25.3,Pygments==2.19.2,pyparsing==3.2.5,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.3,requests==2.32.5,requests-file==1.5.1,roman-numerals==4.0.0,roman-numerals-py==4.0.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.6.2,webcolors==25.10.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 33.07 seconds pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' pylint: freeze> python -m pip freeze --all pylint: astroid==4.0.2,dill==0.4.0,isort==7.0.0,mccabe==0.7.0,pip==25.3,platformdirs==4.5.1,pylint==4.0.4,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 docs-linkcheck: OK ✔ in 37.96 seconds 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..................................................................Failed - hook id: gitlint-ci - exit code: 2 4: B1 Line exceeds max length (73>72): "invoked multiple times. Ensure consistent behavior between invocations by" 5: B1 Line exceeds max length (73>72): "resetting the PCE/renderer listener state (input and service UUID) on all" pre-commit: exit 1 (11.74 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run gitlint-ci --hook-stage manual pid=3408 ------------------------------------ Your code has been rated at 10.00/10 pre-commit: FAIL ✖ in 54.4 seconds pylint: OK ✔ in 32.39 seconds buildcontroller: OK ✔ in 2 minutes 17.85 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_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_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==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 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_tests71: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh build_karaf_tests121: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 build_karaf_tests121: 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==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 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_tests71: OK ✔ in 1 minute 8.28 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_tests190: OK ✔ in 1 minute 8.73 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 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:3.1.4:install (default-install) on project transportpce-karaf: Failed to install metadata org.opendaylight.transportpce:transportpce-karaf:13.0.0-SNAPSHOT/maven-metadata.xml: Could not read metadata /home/jenkins/.m2/repository/org/opendaylight/transportpce/transportpce-karaf/13.0.0-SNAPSHOT/maven-metadata-local.xml: input contained no data -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException build_karaf_tests221: OK ✔ in 1 minute 11.13 seconds build_karaf_tests121: OK ✔ in 1 minute 11.15 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 sims: freeze> python -m pip freeze --all buildlighty: freeze> python -m pip freeze --all sims: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 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 buildlighty: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh sims: OK ✔ in 13.48 seconds buildlighty: OK ✔ in 35.03 seconds testsPCE: freeze> python -m pip freeze --all testsPCE: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,click==8.3.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.61.1,gnpy4tpce==2.4.7,idna==3.11,iniconfig==2.3.0,injector==0.23.0,invoke==2.2.1,itsdangerous==2.2.0,Jinja2==3.1.6,kiwisolver==1.4.9,lxml==6.0.2,MarkupSafe==3.0.3,matplotlib==3.10.8,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==12.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pyparsing==3.2.5,pytest==9.0.2,python-dateutil==2.9.0.post0,pytz==2025.2,requests==2.32.5,scipy==1.16.3,setuptools==50.3.2,six==1.17.0,urllib3==2.6.2,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 EFFFFFFFFFFFFFFFFFFF [100%] ==================================== ERRORS ==================================== _______ ERROR at setup of TestTransportPCEPce.test_01_load_port_mapping ________ cls = @classmethod def setUpClass(cls): # pylint: disable=bare-except sample_files_parsed = False time.sleep(20) try: TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..", "..", "sample_configs", "honeynode-topo.json") with open(TOPO_BI_DIR_FILE, 'r', encoding='utf-8') as topo_bi_dir: cls.simple_topo_bi_dir_data = topo_bi_dir.read() TOPO_UNI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..", "..", "sample_configs", "NW-simple-topology.json") with open(TOPO_UNI_DIR_FILE, 'r', encoding='utf-8') as topo_uni_dir: cls.simple_topo_uni_dir_data = topo_uni_dir.read() TOPO_UNI_DIR_COMPLEX_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..", "..", "sample_configs", "NW-for-test-5-4.json") with open(TOPO_UNI_DIR_COMPLEX_FILE, 'r', encoding='utf-8') as topo_uni_dir_complex: cls.complex_topo_uni_dir_data = topo_uni_dir_complex.read() PORT_MAPPING_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..", "..", "sample_configs", "pce_portmapping_121.json") with open(PORT_MAPPING_FILE, 'r', encoding='utf-8') as port_mapping: cls.port_mapping_data = port_mapping.read() sample_files_parsed = True except PermissionError as err: print("Permission Error when trying to read sample files\n", err) sys.exit(2) except FileNotFoundError as err: print("File Not found Error when trying to read sample files\n", err) sys.exit(2) except: print("Unexpected error when trying to read sample files\n", sys.exc_info()[0]) sys.exit(2) finally: if sample_files_parsed: print("sample files content loaded") > cls.processes = test_utils.start_tpce() ^^^^^^^^^^^^^^^^^^^^^^^ transportpce_tests/pce/test01_pce.py:93: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def start_tpce(): if 'NO_ODL_STARTUP' in os.environ: print('No OpenDaylight instance to start!') return [] print('starting OpenDaylight...') if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': process = start_lighty() else: process = start_karaf() if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): print('OpenDaylight started !') else: print('OpenDaylight failed to start !') shutdown_process(process) for pid in process_list: shutdown_process(pid) > sys.exit(1) E SystemExit: 1 transportpce_tests/common/test_utils.py:232: SystemExit ---------------------------- Captured stdout setup ----------------------------- sample files content loaded starting OpenDaylight... starting KARAF (karaf) TransportPCE build... Searching for patterns in karaf.log... Pattern not found after 100 seconds! OpenDaylight failed to start ! =================================== FAILURES =================================== _____________ TestTransportPCEPce.test_02_load_simple_topology_bi ______________ self = def test_02_load_simple_topology_bi(self): response = test_utils.put_ietf_network('openroadm-topology', self.simple_topo_bi_dir_data) > self.assertIn(response['status_code'], (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/pce/test01_pce.py:119: AssertionError ---------------------------- Captured stdout setup ----------------------------- sample files content loaded starting OpenDaylight... starting KARAF (karaf) TransportPCE build... Searching for patterns in karaf.log... Pattern found! OpenDaylight started ! ____________________ TestTransportPCEPce.test_03_get_nodeId ____________________ self = def test_03_get_nodeId(self): response = test_utils.get_ietf_network_node_request('openroadm-topology', 'ROADMA01-SRG1', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/pce/test01_pce.py:125: AssertionError ____________________ TestTransportPCEPce.test_04_get_linkId ____________________ self = def test_04_get_linkId(self): > response = test_utils.get_ietf_network_link_request( 'openroadm-topology', 'XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX', 'config') transportpce_tests/pce/test01_pce.py:131: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ network = 'openroadm-topology' link = 'XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX' content = 'config' def get_ietf_network_link_request(network: str, link: str, content: str): url = {'rfc8040': '{}/data/ietf-network:networks/network={}/ietf-network-topology:link={}?content={}', 'draft-bierman02': '{}/{}/ietf-network:networks/network/{}/ietf-network-topology:link/{}'} if RESTCONF_VERSION in ('rfc8040'): format_args = ('{}', network, link, content) elif content == 'config': format_args = ('{}', content, network, link) else: format_args = ('{}', 'operational', network, link) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'ietf-network-topology:link', 'draft-bierman02': 'ietf-network-topology:link'} > link = res[return_key[RESTCONF_VERSION]][0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E KeyError: 'ietf-network-topology:link' transportpce_tests/common/test_utils.py:602: KeyError _____________ TestTransportPCEPce.test_05_path_computation_xpdr_bi _____________ self = def test_05_path_computation_xpdr_bi(self): > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 'path-computation-request', self.path_computation_input_data) transportpce_tests/pce/test01_pce.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-pce', rpc = 'path-computation-request' payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'NodeA', 'node-id': 'XPDRA01', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 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-pce:output' transportpce_tests/common/test_utils.py:761: KeyError _____________ TestTransportPCEPce.test_06_path_computation_rdm_bi ______________ self = def test_06_path_computation_rdm_bi(self): self.path_computation_input_data["service-a-end"]["node-id"] = "ROADMA01" self.path_computation_input_data["service-z-end"]["node-id"] = "ROADMC01" > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 'path-computation-request', self.path_computation_input_data) transportpce_tests/pce/test01_pce.py:151: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-pce', rpc = 'path-computation-request' payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'NodeA', 'node-id': 'ROADMA01', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 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-pce:output' transportpce_tests/common/test_utils.py:761: KeyError _____________ TestTransportPCEPce.test_07_load_simple_topology_uni _____________ self = def test_07_load_simple_topology_uni(self): response = test_utils.put_ietf_network('openroadm-topology', self.simple_topo_uni_dir_data) > self.assertIn(response['status_code'], (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/pce/test01_pce.py:162: AssertionError ____________________ TestTransportPCEPce.test_08_get_nodeId ____________________ self = def test_08_get_nodeId(self): response = test_utils.get_ietf_network_node_request('openroadm-topology', 'XPONDER-1-2', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/pce/test01_pce.py:168: AssertionError ____________________ TestTransportPCEPce.test_09_get_linkId ____________________ self = def test_09_get_linkId(self): > response = test_utils.get_ietf_network_link_request( 'openroadm-topology', 'XPONDER-1-2XPDR-NW1-TX-toOpenROADM-1-2-SRG1-SRG1-PP1-RX', 'config') transportpce_tests/pce/test01_pce.py:174: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ network = 'openroadm-topology' link = 'XPONDER-1-2XPDR-NW1-TX-toOpenROADM-1-2-SRG1-SRG1-PP1-RX' content = 'config' def get_ietf_network_link_request(network: str, link: str, content: str): url = {'rfc8040': '{}/data/ietf-network:networks/network={}/ietf-network-topology:link={}?content={}', 'draft-bierman02': '{}/{}/ietf-network:networks/network/{}/ietf-network-topology:link/{}'} if RESTCONF_VERSION in ('rfc8040'): format_args = ('{}', network, link, content) elif content == 'config': format_args = ('{}', content, network, link) else: format_args = ('{}', 'operational', network, link) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'ietf-network-topology:link', 'draft-bierman02': 'ietf-network-topology:link'} > link = res[return_key[RESTCONF_VERSION]][0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E KeyError: 'ietf-network-topology:link' transportpce_tests/common/test_utils.py:602: KeyError ____________ TestTransportPCEPce.test_10_path_computation_xpdr_uni _____________ self = def test_10_path_computation_xpdr_uni(self): self.path_computation_input_data["service-a-end"]["node-id"] = "XPONDER-1-2" self.path_computation_input_data["service-a-end"]["clli"] = "ORANGE1" self.path_computation_input_data["service-z-end"]["node-id"] = "XPONDER-3-2" self.path_computation_input_data["service-z-end"]["clli"] = "ORANGE3" > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 'path-computation-request', self.path_computation_input_data) transportpce_tests/pce/test01_pce.py:186: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-pce', rpc = 'path-computation-request' payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'ORANGE1', 'node-id': 'XPONDER-1-2', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 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-pce:output' transportpce_tests/common/test_utils.py:761: KeyError _____________ TestTransportPCEPce.test_11_path_computation_rdm_uni _____________ self = def test_11_path_computation_rdm_uni(self): self.path_computation_input_data["service-a-end"]["node-id"] = "OpenROADM-2-1" self.path_computation_input_data["service-a-end"]["clli"] = "cll21" self.path_computation_input_data["service-z-end"]["node-id"] = "OpenROADM-2-2" self.path_computation_input_data["service-z-end"]["clli"] = "ncli22" > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 'path-computation-request', self.path_computation_input_data) transportpce_tests/pce/test01_pce.py:200: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-pce', rpc = 'path-computation-request' payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'cll21', 'node-id': 'OpenROADM-2-1', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 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-pce:output' transportpce_tests/common/test_utils.py:761: KeyError ______________ TestTransportPCEPce.test_12_load_complex_topology _______________ self = def test_12_load_complex_topology(self): response = test_utils.put_ietf_network('openroadm-topology', self.complex_topo_uni_dir_data) > self.assertIn(response['status_code'], (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/pce/test01_pce.py:223: AssertionError ____________________ TestTransportPCEPce.test_13_get_nodeId ____________________ self = def test_13_get_nodeId(self): response = test_utils.get_ietf_network_node_request('openroadm-topology', 'XPONDER-3-2', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/pce/test01_pce.py:229: AssertionError ______________ TestTransportPCEPce.test_14_fail_path_computation _______________ self = def test_14_fail_path_computation(self): del self.path_computation_input_data["service-name"] del self.path_computation_input_data["service-a-end"] del self.path_computation_input_data["service-z-end"] > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 'path-computation-request', self.path_computation_input_data) transportpce_tests/pce/test01_pce.py:238: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-pce', rpc = 'path-computation-request' payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-handler-header': {'request-id': 'request1'}} 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-pce:output' transportpce_tests/common/test_utils.py:761: KeyError ____________ TestTransportPCEPce.test_15_success1_path_computation _____________ self = def test_15_success1_path_computation(self): self.path_computation_input_data["service-name"] = "service 1" self.path_computation_input_data["service-a-end"] = {"service-format": "Ethernet", "service-rate": "100", "clli": "ORANGE2", "node-id": "XPONDER-2-2"} self.path_computation_input_data["service-z-end"] = {"service-format": "Ethernet", "service-rate": "100", "clli": "ORANGE1", "node-id": "XPONDER-1-2"} self.path_computation_input_data["hard-constraints"] = {"customer-code": ["Some customer-code"], "co-routing": { "service-identifier-list": [{ "service-identifier": "Some existing-service"}] }} self.path_computation_input_data["soft-constraints"] = {"customer-code": ["Some customer-code"], "co-routing": { "service-identifier-list": [{ "service-identifier": "Some existing-service"}] }} > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 'path-computation-request', self.path_computation_input_data) transportpce_tests/pce/test01_pce.py:263: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-pce', rpc = 'path-computation-request' payload = {'hard-constraints': {'co-routing': {'service-identifier-list': [{'service-identifier': 'Some existing-service'}]}, 'c...ervice-a-end': {'clli': 'ORANGE2', 'node-id': 'XPONDER-2-2', 'service-format': 'Ethernet', 'service-rate': '100'}, ...} 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-pce:output' transportpce_tests/common/test_utils.py:761: KeyError ____________ TestTransportPCEPce.test_16_success2_path_computation _____________ self = def test_16_success2_path_computation(self): self.path_computation_input_data["service-a-end"]["node-id"] = "XPONDER-1-2" self.path_computation_input_data["service-a-end"]["clli"] = "ORANGE1" self.path_computation_input_data["service-z-end"]["node-id"] = "XPONDER-3-2" self.path_computation_input_data["service-z-end"]["clli"] = "ORANGE3" del self.path_computation_input_data["hard-constraints"] del self.path_computation_input_data["soft-constraints"] > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 'path-computation-request', self.path_computation_input_data) transportpce_tests/pce/test01_pce.py:280: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-pce', rpc = 'path-computation-request' payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'ORANGE1', 'node-id': 'XPONDER-1-2', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 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-pce:output' transportpce_tests/common/test_utils.py:761: KeyError ____________ TestTransportPCEPce.test_17_success3_path_computation _____________ self = def test_17_success3_path_computation(self): self.path_computation_input_data["hard-constraints"] = {"exclude": {"node-id": ["OpenROADM-2-1", "OpenROADM-2-2"]}} > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 'path-computation-request', self.path_computation_input_data) transportpce_tests/pce/test01_pce.py:296: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-pce', rpc = 'path-computation-request' payload = {'hard-constraints': {'exclude': {'node-id': ['OpenROADM-2-1', 'OpenROADM-2-2']}}, 'pce-routing-metric': 'hop-count', ...ervice-a-end': {'clli': 'ORANGE1', 'node-id': 'XPONDER-1-2', 'service-format': 'Ethernet', 'service-rate': '100'}, ...} 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-pce:output' transportpce_tests/common/test_utils.py:761: KeyError __ TestTransportPCEPce.test_18_path_computation_before_oms_attribute_deletion __ self = def test_18_path_computation_before_oms_attribute_deletion(self): self.path_computation_input_data["service-a-end"]["node-id"] = "XPONDER-2-2" self.path_computation_input_data["service-a-end"]["clli"] = "ORANGE2" self.path_computation_input_data["service-z-end"]["node-id"] = "XPONDER-1-2" self.path_computation_input_data["service-z-end"]["clli"] = "ORANGE1" del self.path_computation_input_data["hard-constraints"] > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 'path-computation-request', self.path_computation_input_data) transportpce_tests/pce/test01_pce.py:315: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-pce', rpc = 'path-computation-request' payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'ORANGE2', 'node-id': 'XPONDER-2-2', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 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-pce:output' transportpce_tests/common/test_utils.py:761: KeyError _ TestTransportPCEPce.test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link _ self = def test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link(self): response = test_utils.del_oms_attr_request("OpenROADM-1-3-DEG2-to-OpenROADM-1-2-DEG2") > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/pce/test01_pce.py:337: AssertionError __ TestTransportPCEPce.test_20_path_computation_after_oms_attribute_deletion ___ self = def test_20_path_computation_after_oms_attribute_deletion(self): > response = test_utils.transportpce_api_rpc_request('transportpce-pce', 'path-computation-request', self.path_computation_input_data) transportpce_tests/pce/test01_pce.py:342: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-pce', rpc = 'path-computation-request' payload = {'pce-routing-metric': 'hop-count', 'resource-reserve': 'true', 'service-a-end': {'clli': 'ORANGE2', 'node-id': 'XPONDER-2-2', 'service-format': 'Ethernet', 'service-rate': '100'}, 'service-handler-header': {'request-id': 'request1'}, ...} 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-pce:output' transportpce_tests/common/test_utils.py:761: KeyError --------------------------- Captured stdout teardown --------------------------- all processes killed ODL log file stored =========================== short test summary info ============================ FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_02_load_simple_topology_bi FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_03_get_nodeId FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_04_get_linkId FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_05_path_computation_xpdr_bi FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_06_path_computation_rdm_bi FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_07_load_simple_topology_uni FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_08_get_nodeId FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_09_get_linkId FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_10_path_computation_xpdr_uni FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_11_path_computation_rdm_uni FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_12_load_complex_topology FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_13_get_nodeId FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_14_fail_path_computation FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_15_success1_path_computation FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_16_success2_path_computation FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_17_success3_path_computation FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_18_path_computation_before_oms_attribute_deletion FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link FAILED transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_20_path_computation_after_oms_attribute_deletion ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_01_load_port_mapping 19 failed, 1 error in 229.81s (0:03:49) testsPCE: exit 1 (230.13 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce pid=4983 testsPCE: FAIL ✖ in 4 minutes 43.86 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 tests190: freeze> python -m pip freeze --all tests190: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 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 tests_tapi: freeze> python -m pip freeze --all tests121: freeze> python -m pip freeze --all tests121: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 using environment variables from ./karaf121.env tests_tapi: bcrypt==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 pytest -q transportpce_tests/1.2.1/test01_portmapping.py 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 ........... [100%] 10 passed in 76.16s (0:01:16) pytest -q transportpce_tests/oc/test02_topology.py .................................. [100%] 21 passed in 124.31s (0:02:04) pytest -q transportpce_tests/1.2.1/test02_topo_portmapping.py ........................ [100%] 14 passed in 65.29s (0:01:05) pytest -q transportpce_tests/oc/test03_renderer.py .................... [100%] 6 passed in 62.88s (0:01:02) pytest -q transportpce_tests/1.2.1/test03_topology.py .................. [100%] 19 passed in 62.69s (0:01:02) tests190: OK ✔ in 3 minutes 42.7 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==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 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 54.58s pytest -q transportpce_tests/7.1/test02_otn_renderer.py ...................................................... [100%] 44 passed in 152.75s (0:02:32) pytest -q transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py .................................................................... [100%] 62 passed in 160.40s (0:02:40) pytest -q transportpce_tests/7.1/test03_renderer_or_modes.py . [100%] 24 passed in 90.17s (0:01:30) pytest -q transportpce_tests/1.2.1/test05_olm.py ........ [100%] 51 passed in 490.97s (0:08:10) pytest -q transportpce_tests/tapi/test02_full_topology.py ........................................................................... [100%] 48 passed in 153.84s (0:02:33) pytest -q transportpce_tests/7.1/test04_renderer_regen_mode.py ................................. [100%] 40 passed in 205.56s (0:03:25) pytest -q transportpce_tests/1.2.1/test06_end2end.py F...F......... [100%] 22 passed in 80.04s (0:01:20) .F............F.F................................................ [100%] =================================== FAILURES =================================== _ TestTransportPCEFullTopology.test_18a_get_tapi_Pht_node_details_at_Pht_Service_creation _ self = def test_18a_get_tapi_Pht_node_details_at_Pht_Service_creation(self): response = test_utils.get_tapi_topology_node( test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1OTS, "nonconfig") time.sleep(2) self.assertEqual(response['status_code'], requests.codes.ok) input_dict_1 = {"spectrum-capability-pac": {"occupied-spectrum": [{"upper-frequency": "196125000000000", "lower-frequency": "196075000000000"}], "supportable-spectrum": [{"upper-frequency": "196125000000000", "lower-frequency": "191325000000000"}]} } self.assertDictEqual(dict(input_dict_1, **response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']), response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']) self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'eNodeEdgePoint') self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+PHOTONIC_MEDIA_OTS+XPDR1-NETWORK1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '100.0') self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] ['client-node-edge-point'][0]['node-edge-point-uuid'], 'f32f5e9e-d167-31ba-a9e4-8f1efdb8786d') self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] ['parent-node-edge-point']['node-edge-point-uuid'], '21efd6a4-2d81-3cdb-aabb-b983fb61904e') response = test_utils.get_tapi_topology_node( test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1OTSi, "nonconfig") time.sleep(2) self.assertDictEqual(dict(input_dict_1, **response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']), response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']) self.assertEqual(response['status_code'], requests.codes.ok) self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'PhotMedNodeEdgePoint') self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+OTSi_MEDIA_CHANNEL+XPDR1-NETWORK1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '100.0') > self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ['client-node-edge-point'][0]['node-edge-point-uuid'], '7d2a0549-63e3-3c7f-b4dc-5653e8a81dbe') E KeyError: 'tapi-connectivity:cep-list' transportpce_tests/tapi/test02_full_topology.py:428: KeyError _ TestTransportPCEFullTopology.test_18b_get_tapi_OTN_node_details_at_Pht_Service_creation _ self = def test_18b_get_tapi_OTN_node_details_at_Pht_Service_creation(self): response = test_utils.get_tapi_topology_node( test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1iODU, "nonconfig") time.sleep(2) self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'iNodeEdgePoint_N') self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+iODU+XPDR1-NETWORK1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '100.0') response = test_utils.get_tapi_topology_node(test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1eODUC1, "nonconfig") time.sleep(2) self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'eNodeEdgePoint_N') self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+eODU+XPDR1-CLIENT1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '10.0') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '10.0') self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '10.0') > self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ['parent-node-edge-point']['node-edge-point-uuid'], '72c6b97a-3944-3d88-9882-b7e688bb2772') E KeyError: 'tapi-connectivity:cep-list' transportpce_tests/tapi/test02_full_topology.py:478: KeyError _ TestTransportPCEFullTopology.test_20_get_tapi_node_details_at_ODU_Service_creation _ self = def test_20_get_tapi_node_details_at_ODU_Service_creation(self): # ODU service creation correspond to the creation of HO-ODU between 2 Network ports and is associated an # iODU4 top connection which uses 100% of underlying OTU4 response = test_utils.get_tapi_topology_node(test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1eODUC1, "nonconfig") time.sleep(2) self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+eODU+XPDR1-CLIENT1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '10.0') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '10.0') self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '10.0') > self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ['client-node-edge-point'][0]['node-edge-point-uuid'], 'c6cd334c-51a1-3995-bed3-5cf2b7445c04') E KeyError: 'tapi-connectivity:cep-list' transportpce_tests/tapi/test02_full_topology.py:545: KeyError _ TestTransportPCEFullTopology.test_23_get_tapi_node_details_at_DSR_Service_creation _ self = def test_23_get_tapi_node_details_at_DSR_Service_creation(self): response = test_utils.get_tapi_topology_node(test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1eODUC1, "nonconfig") time.sleep(2) self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+eODU+XPDR1-CLIENT1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') > self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '0') E AssertionError: '1' != '0' E - 1 E + 0 transportpce_tests/tapi/test02_full_topology.py:663: AssertionError ______ TestTransportPCEFullTopology.test_25_get_connectivity_service_list ______ self = def test_25_get_connectivity_service_list(self): response = test_utils.transportpce_api_rpc_request( 'tapi-connectivity', 'get-connectivity-service-list', None) self.assertEqual(response['status_code'], requests.codes.ok) liste_service = response['output']['service'] for ele in liste_service: if ele['uuid'] == self.uuid_services.pm: self.assertEqual(ele['operational-state'], 'ENABLED') # self.assertEqual(ele['service-layer'], 'PHOTONIC_MEDIA') self.assertEqual(ele['layer-protocol-name'], 'PHOTONIC_MEDIA') nbconnection = len(ele['connection']) self.assertEqual(nbconnection, 4, 'There should be 4 connections') elif ele['uuid'] == self.uuid_services.odu: > self.assertEqual(ele['operational-state'], 'ENABLED') E AssertionError: 'DISABLED' != 'ENABLED' E - DISABLED E + ENABLED transportpce_tests/tapi/test02_full_topology.py:714: AssertionError =========================== short test summary info ============================ FAILED transportpce_tests/tapi/test02_full_topology.py::TestTransportPCEFullTopology::test_18a_get_tapi_Pht_node_details_at_Pht_Service_creation FAILED transportpce_tests/tapi/test02_full_topology.py::TestTransportPCEFullTopology::test_18b_get_tapi_OTN_node_details_at_Pht_Service_creation FAILED transportpce_tests/tapi/test02_full_topology.py::TestTransportPCEFullTopology::test_20_get_tapi_node_details_at_ODU_Service_creation FAILED transportpce_tests/tapi/test02_full_topology.py::TestTransportPCEFullTopology::test_23_get_tapi_node_details_at_DSR_Service_creation FAILED transportpce_tests/tapi/test02_full_topology.py::TestTransportPCEFullTopology::test_25_get_connectivity_service_list 5 failed, 31 passed in 504.54s (0:08:24) tests71: OK ✔ in 7 minutes 38.21 seconds tests_tapi: exit 1 (996.13 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi pid=6217 tests_tapi: FAIL ✖ in 16 minutes 54.02 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==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 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%] 35 passed in 80.05s (0:01:20) pytest -q transportpce_tests/2.2.1/test02_topo_portmapping.py ...... [100%] 6 passed in 47.22s pytest -q transportpce_tests/2.2.1/test03_topology.py ..... [100%] 54 passed in 538.16s (0:08:58) ............................................ [100%] 44 passed in 139.10s (0:02:19) pytest -q transportpce_tests/2.2.1/test04_otn_topology.py ............ [100%] 12 passed in 62.78s (0:01:02) pytest -q transportpce_tests/2.2.1/test05_flex_grid.py ................ [100%] 16 passed in 117.29s (0:01:57) pytest -q transportpce_tests/2.2.1/test06_renderer_service_path_nominal.py ............................... [100%] 31 passed in 42.78s pytest -q transportpce_tests/2.2.1/test07_otn_renderer.py .......................... [100%] 26 passed in 93.05s (0:01:33) pytest -q transportpce_tests/2.2.1/test08_otn_sh_renderer.py ...................... [100%] 22 passed in 104.07s (0:01:44) pytest -q transportpce_tests/2.2.1/test09_olm.py ........................................ [100%] 40 passed in 185.88s (0:03:05) pytest -q transportpce_tests/2.2.1/test11_otn_end2end.py ........................................................................ [ 74%] ......................... [100%] 97 passed in 492.76s (0:08:12) pytest -q transportpce_tests/2.2.1/test12_end2end.py ...................................................... [100%] 54 passed in 448.44s (0:07:28) pytest -q transportpce_tests/2.2.1/test14_otn_switch_end2end.py ........................................................................ [ 71%] ............................. [100%] 101 passed in 492.85s (0:08:12) pytest -q transportpce_tests/2.2.1/test15_otn_end2end_with_intermediate_switch.py ........................................................................ [ 67%] ................................... [100%] 107 passed in 603.53s (0:10:03) pytest -q transportpce_tests/2.2.1/test16_freq_end2end.py ............................................. [100%] 45 passed in 205.25s (0:03:25) tests121: OK ✔ in 19 minutes 54.05 seconds tests221: OK ✔ in 52 minutes 9.39 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==5.0.0,certifi==2025.11.12,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.3,dict2xml==1.7.7,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==25.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.1.3,pycparser==2.23,Pygments==2.19.2,PyNaCl==1.6.1,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.2 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 ................................................... [100%] 51 passed in 150.04s (0:02:30) pytest -q transportpce_tests/hybrid/test02_B100G_end2end.py ........................................................................ [ 66%] ..................................... [100%] 109 passed in 432.16s (0:07:12) pytest -q transportpce_tests/hybrid/test03_autonomous_reroute.py ..................................................... [100%] 53 passed in 261.25s (0:04:21) buildcontroller: OK (137.85=setup[8.74]+cmd[129.12] seconds) sims: OK (13.48=setup[9.30]+cmd[4.18] seconds) build_karaf_tests121: OK (71.15=setup[8.20]+cmd[62.95] seconds) testsPCE: FAIL code 1 (283.86=setup[53.73]+cmd[230.13] seconds) tests121: OK (1194.05=setup[17.88]+cmd[1176.16] seconds) build_karaf_tests221: OK (71.13=setup[8.24]+cmd[62.89] seconds) tests_tapi: FAIL code 1 (1014.02=setup[17.90]+cmd[996.13] seconds) tests221: OK (3129.39=setup[9.95]+cmd[3119.43] seconds) build_karaf_tests71: OK (68.28=setup[8.19]+cmd[60.09] seconds) tests71: OK (458.21=setup[8.05]+cmd[450.17] seconds) build_karaf_tests190: OK (68.73=setup[8.14]+cmd[60.58] seconds) tests190: OK (222.70=setup[17.12]+cmd[205.59] seconds) tests_hybrid: OK (852.31=setup[7.93]+cmd[844.39] seconds) buildlighty: OK (35.03=setup[9.85]+cmd[25.18] seconds) docs: OK (33.07=setup[28.97]+cmd[4.10] seconds) docs-linkcheck: OK (37.95=setup[30.85]+cmd[7.10] seconds) checkbashisms: OK (3.21=setup[1.96]+cmd[0.00,0.04,1.20] seconds) pre-commit: FAIL code 1 (54.40=setup[3.10]+cmd[0.01,0.00,39.54,11.74] seconds) pylint: OK (32.39=setup[4.13]+cmd[28.26] seconds) evaluation failed :( (5488.63 seconds)